Swift入门

基本数据类型

  • Int、UInt:整数型、非负整数
  • Float、Double:单精度浮点数、双精度浮点数
  • Bool:布偶值
  • String、Character:字符串、字符

其他类型

  • Array, Dictionary:数组、字典
  • Struct:结构体
  • Class:类
  • var:变量
  • let:常量,必须在声明的时候赋值

类型别名

  • typealias:类型别名
	typealias newname = type
	/// 定义Feet类型为Int类型
	typealias Feet = Int

类型标注

	// 方法一
	var varB:Float
	varB = 3.14159
	print(varB)
	// 方法二
	let constB:Float = 3.14159
	print(constB)

可选类型

  • Swift 中,普通的变量或常量不能赋值为 nil(空值),但是可选类型的变量或常量可以,用于表示一个值可能为nil(空值)的情况,用问号❓表示
	// 两种写法等价
	var optionalInteger: Int?
	var optionalInteger: Optional<Int>
  • 强制解析:当你确定可选类型确实包含值之后,你可以在可选的名字后面加一个感叹号!来获取值。
	// myString是String类型,且是可选类型,可能为空
	var myString:String?
	// myString为Hello, Swift
	myString = "Hello, Swift!"
	// 强制解析myString,我知道它是存在值的
	// 如果myString为nil会报错
	print(myString!)
  • 自动解析:你可以在声明可选变量时使用感叹号!替换问号?。这样可选变量在使用时就不需要再加一个感叹号!来获取值,它会自动解析。
	// 自动解析
	var myString:String!
	myString = "Hello, Swift!"
	print(myString)

print输出

  • \()的使用
	let name = "菜鸟教程"
	let site = "http://www.runoob.com"
	print("\(name)的官网地址为:\(site)")
  • 转义字符
转义字符含义
\0空字符
\\反斜线 \
\n换行符
\r回车符
\’单引号
\"双引号

其他进制表示

  • 二进制前缀为 0b,八进制前缀为 0o,十六进制前缀为 0x,十进制没有前缀
	let decimalInteger = 17           // 17 - 十进制表示
	let binaryInteger = 0b10001       // 17 - 二进制表示
	let octalInteger = 0o21           // 17 - 八进制表示
	let hexadecimalInteger = 0x11     // 17 - 十六进制表示

区间运算符

  • 1...5 区间值为 1, 2, 3, 4 和 5
  • 1..< 5 区间值为 1, 2, 3, 和 4
	for index in 1...5 {
		print("闭区间运算符:")
	}

	for index in 1..<5 {
		print("半开区间运算符:")
	}

合并空值运算符:??

  • 合并空值运算符 a ?? b 如果可选项 a 有值则展开,如果没有值,是 nil,则返回默认值 b
  • 表达式 a 必须是一个可选类型,表达式 b 必须与 a 的存储类型相同
  • 合并空值运算符,实际上是三元运算符作用到 Optional 上的缩写 a != nil ? a! : b
  • 如果 a 的值是非空,b的值将不会被考虑,也就是合并空值运算符是短路的

函数

  • runoob:函数名, name、site:参数,String:返回值
func runoob(name: String, site: String) -> String {
    return name + site
}
// 调用
print(runoob(name: "菜鸟教程:", site: "www.runoob.com"))
  • 不带参数函数
func funcname() -> datatype {
   return datatype
}
  • 没有返回值
func runoob(site: String) {
    print("官网:\(site)")
}
runoob(site: "http://www.baidu.com")
  • 可变参数
func vari<N>(members: N...) {
    for i in members {
        print(i)
    }
}
vari(members: 4,3,5)
vari(members: 4.5, 3.1, 5.6)
vari(members: "Google", "Baidu", "Runoob")
  • 元组tuple类型让多个值作为一个复合值从函数中返回
func minMax(array: [Int]) -> (min: Int, max: Int) {
    var currentMin = array[0]
    var currentMax = array[0]
    for value in array[1..<array.count] {
        if value < currentMin {
            currentMin = value
        } else if value > currentMax {
            currentMax = value
        }
    }
    return (currentMin, currentMax)
}

let bounds = minMax(array: [8, -6, 2, 109, 3, 71])
print("最小值为 \(bounds.min) ,最大值为 \(bounds.max)")

枚举

// 定义枚举
enum DayWeek {
    case SUNDAY
    case MONDAT
    case TUESDAY
    case WEDNESDAY
    case THURSDAY
    case FRIDAY
    case SATURDAY
}

// 快捷方式
enum DayWeek {
    case SUNDAY, MONDAT, TUESDAY
}

// 使用枚举
var weekDay = DayWeek.TUESDAY
// 修改方法
weekDay = DayWeek.SATURDAY
// 简写方法
weekDay = .SATURDAY
  • 原始值

枚举可以是字符串,字符,或者任何整型值或浮点型值。每个原始值在它的枚举声明中必须是唯一的
在原始值为整数的枚举时,不需要显式的为每一个成员赋值,Swift会自动为你赋值,隐式赋值的值依次递增1,如果第一个值没有被赋初值,将会被自动置为0。

enum Month: Int {
    case January = 1
    case February
    case March
}

// 快捷方式
enum Month: Int {
    case January = 1, February, March
}

let month = Month.March.rawValue
print("数字月份为: \(month)。")
  • 相关值
    可以存放不同类型的枚举值
enum Student{
    case Name(String)
    case Mark(Int,Int,Int)
}
var studDetails = Student.Name("Runoob")
var studMarks = Student.Mark(98,97,95)


switch studMarks {
case Student.Name(let studName):
    print("学生的名字是: \(studName)。")
case Student.Mark(let Mark1, let Mark2, let Mark3):
    print("学生的成绩是: \(Mark1),\(Mark2),\(Mark3)。")
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值