Swift 中的变量(var let , Optional)
2016-06-12 13:12
477 查看
相对于C或者OC,Swift在变量方面引入许多新概念。比如区分可变变量和定义和赋值一次,多次使用的 常量。以及值可以为空的 可选类型 optional 变量.
值永远不会被隐式转换为其他类型。如果你需要把一个值转换成其他类型,请显式转换
有一种更简单的把值转换成字符串的方法:把值写到括号中,并且在括号之前写一个反斜杠。例如:
创建一个空数组或者字典,使用初始化语法。
如果类型信息可以被推断出来,你可以用
let x: (String, Int, Double) = ("Hello", 5, 0.9)
let (word, number, value) = x // 元组元素命名,这样访问时候可通过名字
print(word) // hello
print(number) // 5
也可以在一开始定义时候就命名
let x: (w: String, i: Int, v: Double) = ("hello", 5, 0.9)
print(x.w)
print(x.i)
场景举例,一个字符串转整形函数,比如 String2Int() ,有时候可以正常转换,但是遇到 “hello” 这样的字符串转整形,只能是一个空值。
可选类型变量的串联
可选类型的缺省操作
1) 基本变量和常量用法
用let来声明常量,使用
var来声明变量。一个常量的值,在编译的时候,并不需要有明确的值,但是你只能为它赋值一次。也就是说你可以用常量来表示这样一个值:你只需要决定一次,但是需要使用很多次。
var myVariable = 42 myVariable = 50 let myConstant = 42
let implicitInteger = 70 let implicitDouble = 70.0 let explicitDouble: Double = 70
值永远不会被隐式转换为其他类型。如果你需要把一个值转换成其他类型,请显式转换
let label = "The width is" let width = 94 let widthLabel = label + String(width)
有一种更简单的把值转换成字符串的方法:把值写到括号中,并且在括号之前写一个反斜杠。例如:
let apples = 3 let oranges = 5 let appleSummary = "I have \(apples) apples." let fruitSummary = "I have \(apples + oranges) pieces of fruit."
2)数组和字典
用方括号[]来创建数组和字典,并使用下标或者键(key)来访问元素
var shoppingList = ["catfish", "water", "tulips", "blue paint"] shoppingList[1] = "bottle of water"
var occupations = [ "Malcolm": "Captain", "Kaylee": "Mechanic", ] occupations["Jayne"] = "Public Relations"
创建一个空数组或者字典,使用初始化语法。
let emptyArray = [String]() let emptyDictionary = [String: Float]()
如果类型信息可以被推断出来,你可以用
[]和
[:]来创建空数组和空字典——就像你声明变量或者给函数传参数的时候一样。
shoppingList = [] occupations = [:]
let x: (String, Int, Double) = ("Hello", 5, 0.9)
let (word, number, value) = x // 元组元素命名,这样访问时候可通过名字
print(word) // hello
print(number) // 5
也可以在一开始定义时候就命名
let x: (w: String, i: Int, v: Double) = ("hello", 5, 0.9)
print(x.w)
print(x.i)
3)可选类型Optional
用可选类型(optionals)来处理值可能缺失的情况。实际上,是一个枚举类型:<span style="font-size:12px;">enum Optional<T> { case None case Some(T) } let x: String? = nil //意味着 let x = Optional<String>.None let x: String? = "Hello" //意味着 let x = Optional<String>.Some("Hello") </span>
场景举例,一个字符串转整形函数,比如 String2Int() ,有时候可以正常转换,但是遇到 “hello” 这样的字符串转整形,只能是一个空值。
可选类型变量的串联
var display: UILabel? if let label = display { if let text = label.text { let x = text.hashValue ... } } //means if let x = display?.text?.hashValue {...}
可选类型的缺省操作
let s: String? = ... // 可能为空 if s != nil { display.text = s } else { display.text = " " } //可以简单写成 display.text = s ?? " "
相关文章推荐
- Apple Swift学习教程
- 介绍 Fedora 上的 Swift
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift自定义iOS中的TabBarController并为其添加动画
- Swift编程中的泛型解析
- Swift中定义二维数组的方法及遍历方法示例
- 简单分析Swift语言的一些基本特征
- 使用 Swift 语言编写 Android 应用入门
- Swift与C语言指针结合使用实例
- Swift心得笔记之控制流
- 用Swift构建一个简单的iOS邮件应用的方法
- 苹果公司推出的新编程语言Swift简介和入门教程
- Swift实现iOS应用中短信验证码倒计时功能的实例分享
- 使用Swift代码实现iOS手势解锁、指纹解锁实例详解
- 探讨Swift数组和字典
- Swift中的指针操作和使用详细介绍
- Swift中使用正则表达式的一些方法
- Swift心得笔记之运算符
- Swift中使用可选类型完美解决占位问题