import UIKit
var str = "Hello, playground"
var blue = 1
let ret = "red"
blue += 1
ret
let color = 2
let hh = "i like\(ret)\(color)"
//数组
var colorArray = ["blue","red","green","yellow"]
//字典
var colorDic = [
"title":"red",
"color":"green"
]
colorDic["title"]
//创建空数组
var one = []
//创建空字典
var empdictionary = Dictionary<String,Float>()
//控制流 for
for colorValue incolorArray{
// print("i like color is \(colorValue)")
}
var intArray = [1,23,4,78]
var num = 0
for index in0 ..< 4 {
// print("index is \(index)")
// print("\(intArray[index])")
}
//控制流 if
for var iin intArray{
if i >20{
num +=1
}else{
num +=3
}
}
num
//控制流 if
var colorString:String? ="hello"
colorString == nil
var option:String?=nil
var green = "blue"
if let name =option{
green ="blue, \(name)"
}else{
green ="happy"
}
//强制转换
let width = 1000
let widthLabel = String(width)
let ww = widthLabel +String(width)
//控制流 switch
let vegetable = "red pepper cucumber"
switch vegetable{
case"celery":
let veg ="add"
case"cucumber", "watercress":
let veg ="jianhao"
caselet x where x.hasSuffix("pepper"):
let veg ="chengfa"
default:
let veg ="hello word"
}
//利用forin便利字典
let intNumbers = [
"Prime":[2,3,4,5,6,7],
"Fibonacci":[1,4,5,6,7,8,3],
"Square":[1,4,12,23,45],
]
var largest = 0
for (kind,numbers) in intNumbers{
// print("\(kind)")
for numin numbers{
if num >largest{
largest = num
}
}
}
largest
//控制流 wihile
var n = 2
while n <100 {
n =n * 2
}
n
var m = 2
repeat{
m =m * 2
} whilem < 100
m
// 范围..<和...
var firstForLoop = 0
for j in0 ..< 3{
firstForLoop += j
}
firstForLoop
firstForLoop = 0
for i in0 ... 3{
firstForLoop += i
}
firstForLoop
//函数和闭包
/**
greet
- parameter name: 名字字符类型
- parameter day: 日期字符类型
- returns: 名字和日期字符类型
*/
func greet (name:String, day:String) ->String{
return name +" " + day
}
greet("xiao zhang", day:"11.2");
print(greet("xiaoZhang", day:"11.2"));
//返回多个参数
func gerDouble() -> (Double,Double, Double) {
return (2.12,3.3, 7.45)
}
gerDouble()
print(gerDouble())
gerDouble().0
print("www\(gerDouble().0)")
var dou = NSString(format:"%.2f",3.12345000000)
dou.doubleValue
//函数的参数是可变的
func sumOf(numbers: Int...) -> Int {
var sum =0
for numin numbers {
sum += num
}
return sum
}
sumOf()
sumOf(12,23,34,12,5)
//函数的嵌套
func moveSumOf(move: Int...) -> Int {
var m =0
for nin move {
m += add(n) +1
}
return m
}
func add(num: Int) ->Int {
var sum =0
sum = num + 4
return sum
}
moveSumOf(12,23,22)
func returnFifteen() -> Int {
var y =10
func add() {
y += 5;
}
add()
return y
}
print(returnFifteen())
//
/**
函数为返回值
- returns: 返回一个参数为整数返回值为整数的函数
*/
func makeIncrementer() -> (Int ->Int) {
func addOne(num:Int) -> Int{
return1 + num;
}
//返回函数(用函数名字)
returnaddOne
}
var make = makeIncrementer()
make(5)
print(make(7))
//函数作为参数传入另一个参数
func hasAnyMatches(list: [Int], condition:Int -> Bool) ->Bool {
for itemin list {
if condition(item) {
returntrue
}
}
returnfalse
}
func lessThanTen(number: Int) -> Bool {
return number <20
}
var numbers = [12,26,45,12]
hasAnyMatches(numbers, condition:lessThanTen)
//函数是一个特殊的闭包
numbers.map { (nuumbers:Int) -> Intin
let result =3 * num
return result
}