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'
相关推荐
刺客xs3 分钟前
Qt------信号槽,属性,对象树
开发语言·qt·命令模式
2501_921649495 分钟前
免费获取股票历史行情与分时K线数据 API
开发语言·后端·python·金融·数据分析
尤物程序猿10 分钟前
Java如何不建表完成各种复杂的映射关系(鉴权概念、区域概念、通用概念)
java·开发语言
Insight.1 小时前
背包问题——01背包、完全背包、多重背包、分组背包(Python)
开发语言·python
aini_lovee1 小时前
改进遗传算法求解VRP问题时的局部搜索能力
开发语言·算法·matlab
Yeniden1 小时前
Deepeek用大白话讲解 --> 迭代器模式(企业级场景1,多种遍历方式2,隐藏集合结构3,Java集合框架4)
java·开发语言·迭代器模式
SmoothSailingT1 小时前
C#——LINQ方法
开发语言·c#·linq
景川呀1 小时前
Java的类加载器
java·开发语言·java类加载器
k***92161 小时前
Python 科学计算有哪些提高运算速度的技巧
开发语言·python
superman超哥1 小时前
仓颉条件变量深度解析与实践:解锁高效并发同步
开发语言·python·c#·仓颉