Swift变量-常量-可选类型-字面量

变量的声明与赋值。可以只声明(var varB:Float)也可以直接赋值。
变量的输出:

var name = "菜鸟教程"
var site = "http://www.runoob.com"

print("\(name)的官网地址为:\(site)") //用\(variable_name)

常量只需要用let 且常量不能只声明 不赋值

let constB:Float = 3.14159
let constA = 42

字面量:
所谓字面量,就是指像特定的数字,字符串或者是布尔值这样,能够直接了当地指出自己的类型并为变量进行赋值的值。

let decimalInteger = 17           // 17 - 十进制表示
let binaryInteger = 0b10001       // 17 - 二进制表示
let octalInteger = 0o21           // 17 - 八进制表示
let hexadecimalInteger = 0x11     // 17 - 十六进制表示
let decimalDouble = 12.1875       //十进制浮点型字面量
let exponentDouble = 1.21875e1    //十进制浮点型字面量
let hexadecimalDouble = 0xC.3p0   //十六进制浮点型字面量

字符串型字面量
字符串型字面量由被包在双引号中的一串字符组成
字符串型字面量中不能包含未转义的双引号 (")、未转义的反斜线(\)、回车符或换行符。因为:

let stringL = "Hello\tWorld\n\n菜鸟教程官网:\'http://www.runoob.com\'"

在这里插入图片描述

布尔类型的变量有三种值:
true
false
nil

下面重点说一下swift可选类型:
可选类型用于处理值可能缺失的情况。可理解为可选类型就是对变量或常量的一种包装。可选类型的表现方式就是在类型后面加个?,例如Int的可选类型为Int?,String的可选类型为等String?。
一个可选类型代表着值有两种可能性:如果可选类型不为空,那么它所包装的变量或常量有值,反之,它所包装的变量或常量没有值。

注意两点:
Swift中的nil,必须用可选类型接收。
C 和 Objective-C 中并没有可选类型这个概念。最接近的是 Objective-C 中的一个特性,一个方法要不返回一个对象要不返回nil,nil表示“缺少一个合法的对象”。然而,这只对对象起作用——对于结构体,基本的 C 类型或者枚举类型不起作用。对于这些类型,Objective-C 方法一般会返回一个特殊值(比如NSNotFound)来暗示值缺失。这种方法假设方法的调用者知道并记得对特殊值进行判断。然而,Swift 的可选类型可以让你暗示任意类型的值缺失,并不需要一个特殊值。
当你确定可选类型一定包含值之后,你可以在可选的名字后面加一个感叹号!来解包获取值。这被称为可选值得强制解包(forced unwrapping)如果这个可选类型值是nil的话 就会导致强行解包运行错误。
如果我们声明的时候用感叹号替代问号,那么可选变量在使用时就不需要再加一个感叹号(!)来获取值,它会自动解析。

var myString:String!

myString = "Hello, Swift!"

if myString != nil {
   print(myString)
}else{
   print("myString 值为 nil")
}

但是我们不推荐强制解包 使用可选绑定(optional binding)获取可选类型的值(建议的用法)

var defaultAddress: String? = "江苏南京"
if let address = defaultAddress { // 如果defaultAddress有值或类型转换成功,则将值赋值给address直接使用
    print("您的地址是\(address)")  // 使用address代替defaultAddress,且不需要加!强制解析
} else {
    print("对不起,您不存在地址信息")
}
posted @ 2020-06-20 07:59  EvanMeetTheWorld  阅读(27)  评论(0)    收藏  举报