一、swift的基本語法:
下面來介紹swift的基本用法(在main.swift中的**):
import foundation
println("hello, world!")
println("你好,世界!")
// 定義乙個常量,使用關鍵字「let」
// 在swift中,幾乎對所有的基本資料型別或者是物件型別使用結構體進行了重寫
let haidian = "海淀"
// let haidian: string = "海淀" // 在swift中,系統會幫你做型別推斷,上一行的**和此行一樣
// \(變數名)把變數或者常量名轉化為字串進行輸出
println("haidian = \(haidian)") // "\(變數/常量名)" 可以把變數/常量轉化為字串輸出
//直接輸出
println(haidian)
// 定義乙個變數,使用關鍵字「var」
var hello = "你好,"
hello = hello + haidian // 字串過載:字串拼接
println("hello = \(hello)")
// swift幾乎支援所有的unicode編碼的字元(除了數學中的符號、箭頭和橫線)來對變數/常量進行命名
let 狗 = "dog,"
println(狗)
var = 狗 + "愛你"
println()
// 定義乙個整型 (型別推斷)
var a = 10 // 定義乙個整型,其實這個語句,編譯器會幫我們推斷為:var a: int = 10,格式為:「變數/常量名: 型別」,在swift中整型是int,如果系統是32位,那麼這個變數就是int32,如果系統是64位,那麼就是int64,如果我定義乙個8位的整型樹,那麼需要顯式的指定為int8:
var b: int8 = 12 // 顯式指定int的位數
var c = 12.0 // 在swift中,浮點型資料預設是double
var d = double(b) + c // 在swift中,不支援隱式轉換,如果想把兩個不同型別的資料進行操作,那麼需要顯式的轉換其型別,轉換格式為:「型別名(常量/變數名)」
// 元組,元組借鑑了關係型資料庫裡面的概念,關係型資料庫裡面的一條資料就是乙個元組,元組中可以存放不同型別的資料,和結構體類似,但是結構體需要先進行宣告,元組可以直接建立使用
// 定義乙個元組
let errorcode = (404, "not fount") // 這是乙個(int, string)型別的元組,相當於:let errorcode: (int, string) = (404, "not fount")
// 元素分解(取出元組中的元素)
// 取出元組裡面的元素(通過下標取出)
println("errorcode = \(errorcode.0), errormessage = \(errorcode.1)")
// 可以在建立元組的時候,給元組裡面的元素宣告型別名稱
let errorcodea = (errorcode: 404, errormessage: "not found")
// 通過型別名稱取出元素
println("errorcode = \(errorcodea.errorcode), errormessage = \(errorcodea.errormessage)")
println(errorcodea)
// 如果忽略元組對應位置的元素,那麼可以使用「_」
let (statuscode, _) = errorcodea
println("statuscode = \(statuscode)")
// 陣列:在swift陣列中,只能存放同一型別的資料,這樣才能對陣列進行訪問操作。如果資料型別不是相同的,則會轉換為nsarray來處理
// 使用var來宣告乙個可變陣列,
var namearraya = ["張三", "李四", "王五"] // 相當於:var namearraya: string = ["張三", "李四", "王五", "趙六"]
println("namearraya = \(namearraya)")
// 定義乙個空的陣列
var somevalues = [int]() // 宣告了乙個空的陣列,陣列裡面的元素都是int,在xcode6 beta4之前得版本,寫法是:int()
var namearrayc = ["hello", 123]
// 往陣列中新增元素
println("namearraya = \(namearraya)")
// 替換陣列裡面的元素
namearraya[0] = "第乙個"
println(namearraya)
// 刪除陣列裡面的元素
namearraya.removeatindex(0)
println(namearraya)
// 刪除最後乙個元素
namearraya.removelast()
println(namearraya)
// 定義不可變陣列,陣列的可變和不可變是通過let和var進行宣告的,在xcode6 beta4之前,不可變陣列(常量陣列)不能新增和刪除元素,但是可以對元素進行更改,但是在xcode6 beta4之後,常量陣列也不能更改裡面的元素
let namearrayd = ["張三", "李四", "王五"]
// namearrayd[0] = "替換"
for name in namearrayd
// 既取出陣列裡面的元素,又得到元素所在的下標,需要使用 enumerate(陣列名) 方法
for (index, name) in enumerate(namearrayd)
// 字典,在swift中,字典所有的key是同乙個型別,所有的value是同乙個型別,key和value可以是不同的型別,如果不是相應的同一型別,則自動轉換為oc中的nsdictionary
// 宣告乙個空的字典
var dictionarystudent = dictionary()
var person = ["name": "輝哥", "***": "男"] // 相當於:var person: dictionary= ["name": "輝哥", "***": "男"]
println("person = \(person)") // 字典的列印是無序的
// 往字典裡面新增鍵值
person["habit"] = "抽菸"
println("person = \(person)")
// 如果字典裡面沒有這個key,那麼直接新增,如果已經存在這個key了,那麼直接把之前的value替換掉
person["name"] = "波哥"
println("person = \(person)")
// 更新某個key對應的value,使用 updatevalue(value, forkey: key) 進行更新的時候,會返回更新之前的舊值
let oldvalue = person.updatevalue("崔哥", forkey: "name")
println("person = \(person), oldvalue = \(oldvalue)")
// 字典的遍歷
for (key, value) in person
// 字典的可變和不可變也是通過let和var進行控制的,不可以對常量字典進行更新
// 控制語句:if,if...else, while, do...while,switch...case
var num = 3
var condition = true
//if num
if condition
for var i = 0; i < 10; i++
for j in 0..<3
for j in 0...4
// switch,在swift中,對switch進行了很大的更改,預設不需要寫break
var number = 20
switch number
// 如果想強制執行下一條語句的話,需要使用fallthrough關鍵字,本語句必須是滿足條件的
var numbera = 10
switch numbera
// case是乙個範圍
var numberb = 12
switch numberb
// case的範圍可以交叉,但是只執行第乙個滿足條件的case語句
var numberc = 12
switch numberc
// 可以進行雙重判定(使用 「where 判定條件」關鍵字)
var numberd = 13
switch numberd
// 判斷點在座標系的什麼位置, 「_」 :忽略元組中對應位置的值
var point = (3, 5)
switch point
var pointa = (0, 4)
switch pointa
// optionals, 可選變數,如果使用optionals對變數進行宣告,那麼這個變數的值可能是空(nil)。 (需要注意拆包/解包)
// 在swift中只有nil表示空,沒有nil,null,null,nsnull
var value: int? // 「?」表示這是乙個可選變數,值可能為nil
let numberstr = "123456.3"
value = numberstr.toint()
if nil != value
var valuea = 21
let valueb = valuea + value! // 拆包/解包,如果沒有值,則不能解包
println("valueb = \(valueb)")
swift 學習之基礎語法
1,題目 判斷101 200之間有多少個素數,並輸出所有素數。for var i 101 i 200 i 2,題目 假設有乙個學習成績的陣列,利用條件運算子的巢狀來完成此題 學習成績 90分的同學用a表示,60 89分之間的用b表示,60分以下的用c表示。var chengji 92,78,56 f...
Swift學習 1基礎語法
swift 基礎語法 基本1.取消了預處理命令 2.取消了指標的概念 3.取消了ns字首 4.大量將類替換成struct 5.在同一行用來分割語句,如果不是同一行可以省略 6.可選項 7.playground 8.條件語句 if 空執行 9.沒有非0即真的邏輯 10.switch 1 可以針對任意型...
Swift基礎語法
在swift中匯入類庫使用 import 類庫名,不再使用 和 import foundation 輸出語句 swift中的輸出語句使用print c語言中使用prientf print hello,world 常量 變數 定義常量使用 let 常量不能改變 定義變數使用var 變數可以改變 let...