swift菜鸟教程1-5(语法,变量,类型,常量,字面量)

一个朴实无华的目录

今日学习内容:

1.基本语法

引入


空格规范

输入输出


2.变量

声明变量

变量输出加反斜杠括号 \( )

3.可选(Optionals)类型

可选类型

在这两种情况下,变量 optionalInteger 都是可选整数类型。注意,在类型和 ?之间没有空格。

Optional 是一个含有两种情况的枚举,None 和 Some(T),用来表示可能有或可能没有值。任何类型都可以明确声明为(或者隐式转换)可选类型。当声明一个可选类型的时候,要确保用括号给 ? 操作符一个合适的范围。例如,声明可选整数数组,应该写成 (Int[])? 写成 Int[]? 会报错。

当你声明一个可选变量或者可选属性的时候没有提供初始值,它的值会默认为 nil。

可选项遵照 LogicValue 协议,因此可以出现在布尔环境中。在这种情况下,如果可选类型T?包含类型为T的任何值(也就是说它的值是 Optional.Some(T) ),这个可选类型等于 true,反之为 false。

强制解析

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

swift 复制代码
import Cocoa

var myString:String?

myString = "Hello, Swift!"

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

以上程序执行结果为:

swift 复制代码
Optional("Hello, Swift!")

print( myString! )加感叹号后

swift 复制代码
import Cocoa

var myString:String?

myString = "Hello, Swift!"

if myString != nil {
   // 强制解析
   print( myString! )
}else{
   print("myString 值为 nil")
}

以上程序执行结果为:

swift 复制代码
Hello, Swift!

使用!来强制解析值之前,一定要确定可选包含一个非nil的值。

可选绑定

如果包含就把值赋给一个临时常量或者变量。可选绑定可以用在if和while语句中来对可选类型的值进行判断并把值赋给一个常量或者变量

swift 复制代码
import Cocoa

var myString:String?

myString = "Hello, Swift!"

if let yourString = myString {
   print("你的字符串值为 - \(yourString)")
}else{
   print("你的字符串没有值")
}

以上程序执行结果为:

swift 复制代码
你的字符串值为 - Hello, Swift!

4.常量

常量声明

swift 复制代码
import Cocoa

let constA = 42
print(constA)

常量命名

swift 复制代码
import Cocoa

let _const = "Hello, Swift!"
print(_const)

let 你好 = "你好世界"
print(你好)

5.字面量

整数 and 浮点数 实例

swift 复制代码
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   //十六进制浮点型字面量

字符串 实例

swift 复制代码
import Cocoa

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

以上程序执行结果为:

swift 复制代码
Hello    World

菜鸟教程官网:'http://www.runoob.com'
相关推荐
你挚爱的强哥1 分钟前
【pdf】自定义组件:预览指定地址的PDF文件
开发语言·前端·javascript
大白同学42136 分钟前
【C++】多态
开发语言·c++
WispX88836 分钟前
【手写系列】手写 AQS 实现 MyLock
java·开发语言·并发·aqs··手写·lock
南玖yy36 分钟前
C++ 类模板三参数深度解析:从链表迭代器看类型推导与实例化(为什么迭代器类模版使用三参数?实例化又会是怎样?)
开发语言·数据结构·c++·人工智能·windows·科技·链表
大熊猫侯佩1 小时前
用接地气的例子趣谈 WWDC 24 全新的 Swift Testing 入门(一)
单元测试·swift·wwdc
大熊猫侯佩1 小时前
Xcode 16 中 Swift Testing 的参数化(Parameterized)机制趣谈
单元测试·swift·apple
catxiao1 小时前
Swift Task 结构化并发
swift
沐知全栈开发1 小时前
排序算法衍生问题
开发语言