天天看点

swift基础day1

1.Xcode playground

如果想创建 iOS playground 则需要引入 UIKit :

2.常量和变量(Constants and Variables)

let定义常量,定义完成后不可修改

var定义变量,可修改。

3.常量和变量的类型: Int, Double, Bool, Tuple

  • Bool:True,False
  • Tuple:tuple用于传递复合类型的数据,介于基础类型和类之间,复杂的数据通过类(或结构)存储,稍简单的通过元组.不管是可变还是不可变元组,元组在创建后就不能对其长度进行增加和删除之类的修改,只有可变元组能在创建之后修改元组中的数据

    4.Type Safety and Type Inference

    Type Safety (类型安全):会在编译代码时进行类型检查(type checks),并把不匹配的类型标记为错误。这可以在开发的时候尽早发现并修复错误。

    Type Inference(类型推断):处理不同类型的值时,类型检查可以避免错误。

    5.optional(可选择)

  1. 用于处理值缺失的情况。
  2. 含有两种情况的枚举,None 和 Some(T)
  3. 使用操作符!去获取值为nil的可选变量会有运行时错误。
  4. 可以用可选链接和可选绑定选择性执行可选表达式上的操作。如果值为nil,任何操作都不会执行,也不会有运行报错。

    “?”与“!”的区别:‘?‘表示不一定能够实例化出对象,“!”表示告诉编译器一定有值,编译能够通过,如果运行时没有值就会直接崩溃。

    强制解析:确定可选类型确实包含值之后,可以在可选的名字后面加一个感叹号(!)来获取值。例:

    注:使用!来获取一个不存在的可选值会导致运行时错误。使用!来强制解析值之前,一定要确定可选包含一个非nil的值。

import Cocoa
var myString:String?
myString = "Hello, Swift!"
if myString != nil {
   print(myString!)
   //强制解析
}else{
   print("myString 值为 nil")
}
           

自动解析:使用‘!’代替‘?’

import Cocoa
var myString:String!
myString = "Hello, Swift!"
if myString != nil {
   print(myString)
}else{
   print("myString 值为 nil")
}
           

可选绑定:用来判断可选类型是否包含值,如果包含就把值赋给一个临时常量或者变量。(if let …)

import Cocoa
var myString:String?
myString = "Hello, Swift!"
if let yourString = myString {
   print("你的字符串值为 - \(yourString)")    //你的字符串值为-Hello,Swift!
}else{
   print("你的字符串没有值")
}
           

6.Basic Operators (基本运算符)- unary, binary, or ternary

unary:’-’,’!’

binary: +,-,*,/,%

ternary: C?A:B