都需要先變成String , 可以透過一個簡單的方法,在輸出時轉成字串
"\(數值變數)" ,如下所示
var a:Int = 10
mLabel.text = "\(a)"
xcrun swift -version
var str = labelTel.text!
let intValue: Int = str.startIndex.distanceTo(str.endIndex)
class Employee
{
var Name : String = ""
init()
{
print("建構了")
}
deinit
{
print("解構了")
}
}
var emp : Employee? emp = Employee() emp!.Name = "boywhy" emp = nil
public class Employee
{
var Name : String = ""
private var _Salary : Int = 0
var Salary : Int{
set {
if newValue < 30000
{
self._Salary = 30000
}
else
{
self._Salary = newValue
}
}
get
{
return self._Salary
}
}
}
var emp : Employee emp = Employee() emp.Name = "boywhy" emp.Salary=23000 print("Name:\(emp.Name) Salary :\(emp.Salary)")
enum Operator { case ADD case EDIT case DELETE case SELECT }
你也可以一行寫完它
enum DataOperator { case ADD,DELETE,EDIT,SELECT }
使用方法
var Op = Operator.EDIT
//多重分支控制 (要嘛寫default 要嘛全部列舉選項都要寫) switch Op{ case .ADD : break case .DELETE: break case .EDIT: break }
//多重分支控制 (要嘛寫default 要嘛全部列舉選項都要寫) switch Op{ case .ADD : break case .DELETE: break case .EDIT: break case .SELECT: break } //多重分支控制 (要嘛寫default 要嘛全部列舉選項都要寫) switch Op{ case .ADD : break case .DELETE: break case .EDIT: break default : break }
//聯合值 enum BarCode { case QRCODE(String) case UPCA(Int,Int ,Int) } //定義一個變數barcode var qr = BarCode.UPCA(12345, 22222, 9) //判斷這一個列舉值 switch qr { case .QRCODE(let url) : print("網址\(url)") break case .UPCA(let number , let indentifier , let check): print("系統號:\(number) 識別碼:\(indentifier)檢查:\(check)") break; }
func helloWorld(message : String) ->String { return "\(message) Hello World" }
//function call var result1 = helloWorld("Eric")
func printData(message:String) { print(message) } printData("北七BLOG")
func helloWorl (message : String , who : String ) ->String { return "\(who) say ... \(message)" } var result2 = helloWorl("你好", "bill")
func comsitInformation(who : String , salary : Int , address : String ) ->(who : String ,salary : Int ,address : String ) { var whoMsg = who + "你好" var curSalary = salary + 10000 var result = (whoMsg,curSalary,address) return result } var result = comsitInformation("boy" , 100 , "高雄市前鎮區") print(result.who)
func helloWorld(message : String) ->String { return "\(message) Hello World" } //overLoading func helloWorld (message : String , who : String ) ->String { return "\(who) say ... \(message)" } //function call var result1 = helloWorld("Eric") //call stong Typed function paramters var result2 = helloWorld("你好", "bill")
func calc(values : Int...)->Int { var myTOtal : Int = 0 //走訪 print("total:\(values.count)") for value in values { myTOtal += value } return myTOtal } var result3 = calc(10,20,55,55) var result3 = calc(16,22)
//預設是常數,要改值要改成變數 func passingPocess(var #v1 : Int32 ,var #v2 :Int32) { v1 = v1 * 100 v2 = v2 * 100 print("new value: v1:\(v1) v2:\(v2)") } var lvar1 : Int32 = 100 var lvar2 : Int32 = 200 passingPocess(v1 : lvar1 , v2 : lvar2)
井字號(#)作為前綴就可以了。這告訴 Swift 使用這個參數名作為局部和外部參數名。func passingPocess(inout #v1 : Int32 ,inout #v2 :Int32) { v1 = v1 * 100 v2 = v2 * 100 } passingPocess(v1 : &lvar1 , v2 : &lvar2) //call by referece inout print("old value: lvar1:\(lvar1) lvar2:\(lvar2)")
func calc(values : Int...)->Int { var myTOtal : Int = 0 //走訪 print("total:\(values.count)") for value in values { myTOtal += value } return myTOtal } var calProxy :(Int...) -> Int = calc var returntotal = calProxy(1,2,3,4,5)
//不寫參數也可以 var calProxy2 = calc var returntotal2 = calProxy2(1,2,3,4,5)
func addTwoInts(a: Int, b: Int) -> Int { return a + b } var mathFunction: (Int, Int) -> Int = addTwoInts func printMathResult(mathFunction: (Int, Int) -> Int, a: Int, b: Int) { println("Result: \(mathFunction(a, b))") } printMathResult(addTwoInts, 3, 5) // prints "Result: 8」
var result:Bool=true var loop:Int = 1 //條件式迴圈Conditional while result { print("success") loop++ if loop == 100 { break } }
//do whele conditional do { }while result == false
var p:Int for p = 1 ; p <= 10 ; p++ { println(p) }
//array 用中括號 var names=["allen","bill" , "candy" , "eric" , "frank"] //name不需要用var ,但在這裡name它還是區域變數 for name in names { print(name) }
var myName : String = String() //Structure
var name1 , name2 : String name1 = "Eric" name2 = "Eric" if name1 == name2 { print("equ") } else { print("no equ") }
var myName : String = String() myName = "北七部落" for character in myName { print(character) }
var myName : String = String() myName = "北七部落" myName + " Hello world" print (myName)
var myName : String = String() myName = "北七部落" for uni in myName.unicodeScalars { print(uni) }
var myName : String = String() myName = "北七部落" var isEmpty = myName.isEmpty
let index=advance(myName.startIndex , 3) myName.substringFromIndex(index)
var myName : String = String() myName = "北七部落" let index=advance(myName.startIndex , 3) var char = myName[index]
var addr = ["高雄市三民區" , "台南市安南區" , "高雄市前鎮區"] //for in for add in addr { if add.hasPrefix("高雄市") { print(add) } }
var addr = ["高雄市三民區" , "台南市安南區" , "高雄市前鎮區"] //for in for add in addr { if add.hasSuffix("三民區") { print(add) } }
//upcast var caseStrig = myName.uppercaseString //lowcast var caseString2 = caseStrig.lowercaseString
//區間運算 3個點(含頭跟尾巴)
for index in 1...10
{
print(index)
}
//半封閉式區間 2個點(含頭不含尾)
for p in 1..<10
{
println(p)
}
if 100<200 && 300<400
{
println("yes")
}
var a = 10
var b = 20
if a == b
{
println("equ")
}
else
{
println("no equ")
}
typealias LocaltionLate = Double
var myValue : LocaltionLate
//assig value
myValue=3.141159
print(myValue)
var names = ["allent" , "bill" , "candy" ,"eric"]
var r=names.count
//swift int 會隨32和64位元系統而改變長度
println(names[0])
var isOk:Bool
//也可以用1/0
isOk = true
var compare1=100>200
//conditional 控制流程
if (compare1)
{
println("成立")
}
else
{
println("不成立")
}
var HttpError=(404,"not found")
//assignaccess
var(errorcode,message)=HttpError
print(" 網頁錯誤代碼: \(errorcode) 訊息:\(message)")
var personal2=(id:"001", name:"張三豐" , address:"大陸武當山" , salary:50000)
personal2.address="高雄市大甲區"
//取出具名配對值
println("編號:\(personal2.id) 姓名:\(personal2.name)地址\(personal2.address) 薪資:\(personal2.salary)")
var employees=[
(id:"001", name:"張三豐" , address:"大陸武當山" , salary:50000),
(id:"002", name:"張無際" , address:"大陸武當山" , salary:50000),
]
println(employees.count)
var e1=employees[1]
println("編號:\(e1.id) 姓名:\(e1.name)地址\(e1.address) 薪資:\(e1.salary)")
//定義字串
var myStr = "123"
//轉成Int
var r1=myStr.toInt()
//: Playground - noun: a place where people can play
import UIKit
//定義字串value type
var myStr = "abc"
//!表示隱含轉型
var r1=myStr.toInt()
if (r1 == nil)
{
println("not Int")
}
else
{
println(r1!)
}
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//建立一個UILabel元件
var labelTest:UILabel=UILabel()
//設定大小及位置
labelTest.frame=CGRect(x:60,y:80,width:240,height:40)
//設定文字
labelTest.text="這是程式碼建立的"
//設定文字顏色
labelTest.textColor=UIColor.redColor()
//把label加入介面
view.addSubview(labelTest)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Int, UInt, Float, Double)for, while, if, switch 與Ojbective-C都十分類似, 但有延伸功能, 像是 for in 用於集合(collection)的輪詢, switch 還可以接受非整數的cases條件值, 諸如此類。if (i==0) ,一般容易誤寫成 if (i=0) 會造成編譯時期錯誤(compile-time error)。switch 的區塊內不需要再使用 break 敘述句。另外, case後面都需要有可執行的代碼(C或C++可連續使用多個case而不需要額外的代碼), 否則會發生編譯錯誤。