Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序.
Swift虽然现在还不是很成熟,但他是苹果公司自己开发的一门语言,以后肯定会慢慢发展成为主流的苹果开发语言,所以很有学习的必要.
Swift作为一门开发语言,学习他就应该从最基本的语法规则学起(毕竟他和其他语言不太一样),下面是代码:
import UIKit
//输出语句
print("hello world!")
//----------常量,变量-----------
//常量
//定义形式:let 常量名 : 数据类型 = 初始值
//ps:swift里面重写了基本的数据类型,数据类型首字母要大写
//swift给我们提供了一个语法糖,让我们更方便的阅读一个比较长的数字
let a : Int = 100_000_000;
//后面的数据类型可以省略不写,编译器会根据初始值直接推断数据类型
let b = 10.5
let 常量 = 10
let 😭 = 11
//变量
//定义形式: var 变量名 : 数据类型 = 初始值
var 变量 : Int = 3
var 😊 = 110
var add = Double(a) + b
var 字符串 = "字符串"
var string = 字符串 + "哈哈哈"
//"\(变量或者常量名称)"快速帮我们生成一个字符串
print("\(变量)" + "\(add)")
//元组
var person = (name: "玉田", age: 99)
//person.name
//person.age
person.0
person.1
var (myName, myAge) = person
myName
myAge
//数组
//swift中要求所有元素的数据类型必须保持一致,如果不一致就会转变为oc中的数组
//创建一个新数组
//形式1:
var emptyArray : [Int] = [Int]()
//形式2:
var emptyArray1 : Array<Int> = Array<Int>()
var 黑名单 = ["玉田", "刘英", "刘能", "赵四"]
黑名单.append("大脚")
黑名单.insert("广坤", atIndex: 1)
黑名单[1] = "长贵"
黑名单.removeAtIndex(1)
//字典
var personDic = ["name":"木生", "sex":"?"]
personDic["age"] = "99"
personDic
personDic["name"]
personDic.removeValueForKey("age")
//可选变量(optional)
//可选变量的值可以为空
var numberString = "123"
var number : Int? = Int(numberString)
//"!"与"?"是相对的,目的是为了告诉编译器,确定此时肯定有值,这一步也叫做可选变量的强制解析
//if判断
if number == nil{
print("为空")
}else{
print("\(number!)")
}
//可选绑定
if let n = number{
print(n)
}else{
print("Kong")
}
//我们可能不想用为空的值,所以在取可选变量的时候可以设置一个默认值,当前案例如果number为nil,则取0,不为空,则取number
var 可选变量取默认值 = number ?? 0
//循环
var loopNumber = 10
while loopNumber > 5{
loopNumber -= 1
}
//在swift2.0之后叫repeat-while
//在swift2.之前叫do-while
repeat{
loopNumber -= 1
}while loopNumber > 0
for var i = 0 ; i < 10 ; i++ {
print(i)
}
//0..<10代表0到10的 左闭右开区间
//0...10代表0到10的 闭区间
for i in 0 ..< 10 {
print(i)
}
黑名单[0..<2]
for name in 黑名单{
name
}
for (key, value)in personDic {
key
value
}
//switch
//switch对比c做了很多优化,其中 case条件不需要写括号,每一个case不需要写break,默认就会包含break的操作,如果想要贯穿语句,需要使用fallthrough关键字,switch要求我们含有所有的选择情况
let caseNumber = 1
switch caseNumber {
case 0:
print("0000")
case 1:
print("1111")
fallthrough
case 2:
print("2222")
default:
print("other")
}
var caseString = "赵四"
switch caseString {
case "玉田":
print("玉田")
case "赵四":
print("赵四")
default:
print("other")
}
//switch的选择条件还可以是一个范围,且这个范围是可以交叉的,如果出现交叉,默认执行第一个
switch caseNumber {
case 0 ..< 10 where caseNumber == 8 :
print("0000")
case 5 ..< 15:
print("1111")
fallthrough
case 2:
print("2222")
default:
print("other")
}