因为实验室要整活所以特地来学学
Swift菜鸟教程
1.前言
Swift是一种支持多编程范式与编译式的开源编译语言,可以用于开发iOS, OS X, watchOS应用程序
- Swift 结合了 C 和 Objective-C 的优点并且不受 C 兼容性的限制
2.基础语法
①注释
注释与C极其相似(几乎完全一致)
单行代码注释
//单行代码注释
多行代码注释
/*
多行注释内容
*/
不过不同的是Swift的多行注释中能嵌套多行注释
/*
/*这是一行嵌套代码*/
*/
②分号
Swift不要求在每行语句后面加上;
,但是如果在同一行书写多行代码就必须要加上;
③Swift空格(玄学)
Swift对空格有一定的要求
运算符不能直接跟在变量或者常量的后面
标准写法:
let a = 1 + 2;
let b = 3+4
④输出
Swift使用print
函数进行输出
print('outputStr')
与python类似,Swift的print函数默认换行
如果要设置不换行的话,需要设置参数
print("target", terminator: "")
⑤输入
使用函数readLine()
进行读取
let theInput = readLine()
⑥引入
使用import
语句来引入任何Objective-C框架或者C库
import Cocoa
3.数据类型
① Int
长度与当前平台的原生字长相同
② UInt
提供了一个特殊的无符号类型UInt,长度与当前平台的原生字长相同
③ Float, Double
Double表示64位浮点数,适合高精度浮点数
Float表示32位浮点数
④ 布尔值 Bool
Swift有两个布尔常量,true和false
⑤ 字符串 String
是字符的序列集合
"Hello"
⑤ 字符 Character
"C"
⑥类型别名
类型别名可以为当前的类型定义另外一个名字,功能和C中的typedef
类似
typealias newname = type
比如说新名字Ass
定义为Int
typealias Ass = Int
⑦类型安全
Swift是一个类型安全的语言,倘若类型不匹配程序会报错
example:
var varA = 42
varA = "This is hello"
报错如下
error: cannot assign value of type 'String' to type 'Int'
4.变量
变量声明格式
var variableName = <initial value>
可以直接进行变量定义,会自动进行类型推导
var varA = 42
也可以按类型进行定义
var varB:Float
输出变量
Swift的输出变量方式与python不同
在print中使用括号与反斜线进行输出
var test = "测试数据"
print("测试数据: \(test)")
5.可选(Optionals)类型
用于处理值缺失的情况
下列两种声明是相等的
var optionalInteger: Int?
var optionalInteger: Optional<Int>
当你声明一个可选变量或者可选属性的时候没有提供初始值,它的值会默认为 nil
如果可选类型的实例包含一个值,可以用后缀操作符!
来访问这个值
optionalInteger = 42
optionalInteger! //代表数42
然而当可选类型值为nil
时,获取可能会有运行的错误
可选类型运用(这一段代码我不是很理解因此就全段copy了,不过应该是赋初值为nil的话对其进行条件判断)
import Cocoa
var myString:String? = nil
if myString != nil {
print(myString)
}else{
print("字符串为 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")
}
输出
Optional("Hello, Swift")
但如果将print函数中的myString
后面加上感叹号
print(myString!)
则会直接输出
Hello,Swift!
在声明可选变量时将?
替换为!
就不需要用!
来强制解析,会自动进行解析
var myString:String!
6.常量
let
关键字
Swift常量使用关键字let
来声明
let constName = <initial value>
example:
let constA = 42
同样可以标上类型
let constB:Float = 3.14159
7.字面量
整型,字符串,布尔值,十进制等就不列举了
二进制表示
let binaryInteger = 0b10001
八进制表示
let octalInteger = 0o21
十六进制表示
let hexadecimalInteger = 0x11
字符串型字面量
转义字符 | 含义 |
---|---|
\0 | 空字符 |
\\ | 反斜线\ |
\b | 退格,将当前位置移到前一列 |
\f | 换页,将当前位置移到下页开头 |
\n | 换行符 |
\r | 回车符 |
\t | 水平制表符 |
\v | 垂直制表符 |
\' | 单引号 |
\" | 双引号 |
\000 | 1到3位八进制所代表的任意字符 |
\xhh | 1到2位十六进制所代表的任意字符 |
8.运算符
- Swift3中已经取消了
++
与--
因此需要进行类似运算可以用
A += 1
B -= 1
其他运算符都跟C差不多
example:
输出A与B 与运算的结果
print("A&B 结果为:\(A&B)")
区间运算符
Swift提供了两个区间的运算符
- 闭区间运算符
(a...b)
,定义一个包含从a到b(包含a和b)所有值的区间
1...5
表示1,2,3,4,5
- 半开区间运算符
(a..
1..<5
区间值为1,2,3,4
例子
for index in 1...5{
print("\(index)")
}
输出内容
1
2
3
4
5
9.条件语句
if-else 语句
语法如下
if boolean_expression {
/* 如果布尔表达式为真将执行的语句 */
} else {
/* 如果布尔表达式为假将执行的语句 */
}
例子:
var varA:Int = 100;
if varA < 10 {
print("varA 小于 20");
} else {
/* 如果条件为 false 执行以下语句 */
print("varA 大于 20");
}
if- else if -else 语句
语法如下
if boolean_expression_1 {
/* 如果 boolean_expression_1 表达式为 true 则执行该语句 */
} else if boolean_expression_2 {
/* 如果 boolean_expression_2 表达式为 true 则执行该语句 */
} else if boolean_expression_3 {
/* 如果 boolean_expression_3 表达式为 true 则执行该语句 */
} else {
/* 如果以上所有条件表达式都不为 true 则执行该语句 */
}
switch语句
实例:
switch index {
case 100 :
print( "index 的值为 100")
case 10,15 :
print( "index 的值为 10 或 15")
case 5 :
print( "index 的值为 5")
default :
print( "默认 case")
}
注意这里和C中不同的是,Swift中的switch不会从上一个case分支落入到下一个case中,只要第一个匹配到的case分支完成了他需要执行的语句,就完成了整个sw语句的执行,如果想要落入下一个case,需要加上fallthrough
关键字
范例
var index = 10
switch index {
case 100 :
print( "index 的值为 100")
fallthrough
case 10,15 :
print( "index 的值为 10 或 15")
fallthrough
case 5 :
print( "index 的值为 5")
default :
print( "默认 case")
}
输出如下
index 的值为 10 或 15
index 的值为 5
更多基础请看第二篇学习笔记
Q.E.D.
Comments | 0 条评论