天天看點

iOS中 Swift初級入門學習(一)

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。

/  

//  copyright (c) 2015年 韓俊強. all rights reserved.  

//  

import foundation  

// swift當中的輸出函數  

// println swift2.0 之前使用的輸出函數, 可以自動換行  

// print swift2.0之前自動換行, swift2.0之後可以自動換行  

println("hello, world!")  

// 單行注釋和以前一樣  

// 塊注釋  

/*  

      塊注釋  

    /*  

     可以嵌套注釋  

    */  

*/  

// 如何聲明一個常量 規則: let 常量名: 類型 = 值  

// swift當中我們不必再代碼語句的結尾處加分号, 但是如果一行中寫了幾句代碼, 那麼代碼之間就要用分号隔開  

let a: int = 5;    let b: int = 10  

// 如何聲明一個變量 var 變量名: 類型 = 值  

// character 字元型  

var c: character = "a"  

println(c)  

// 常量的值不可以發生改變, 變量的值可以改變  

// a = 10 錯誤  

c = "b"  

// 命名規則  

// 我們可以使用大部分的特殊符号, 中文也可以, 數字, 字母, 下劃線, 但是非法的unicode編碼, 數字元号, 标志符是不可以的  

let 小韓哥: string = "好帥"  

<pre name="code" class="plain">// 類型推斷  

// swift 會根據我們給常量或者變量賦的值來推斷我們常量或者變量的類型  

let 常量 = 10  // 根據推斷: 常量是int類型  

var 變量 = 20 // 變量是一個int 類型  

// swift是一門類型安全的語言, 我們不能給一個類型的變量賦給另一個類型  

// 變量 = 19.5 錯誤  

變量 = 30  

println(變量)  

// 數值字面量  

// 20, 10 , 字元串  

// 0b  

//let ab = 1011  

//println(ab)  

let ab = 0b1010  

println(ab)  

// 八進制值字面量  

let ac = 0o17  

println(ac)  

// 十進制字面量, 預設的數組就是十進制  

let ad = 18  

// 十六進制字面量 0x 開頭  

let ae = 0xabc  

println(ae)  

// 字元串插值  

// swift當中沒有占位符, 我們可以以字元串插值的形式當做占位符 \(), 括号中存放常量或者變量的名字  

let af = "hello,wold"  

println("af = \(af)")  

// 類型轉換  

let 浮點型: float = 15.9  

let 整型: int = 20  

// 不同類型不可以直接做運算  

// 浮點型轉化成int類型 int()  

//  int類型轉化為浮點型  float()  

let result = int(浮點型) + 整型  

// 列印最大值, 最小值  

println(int8.max)  

println(int16.min)  

println(uint8.max)  

println(uint8.min)  

// 類型别名的使用  

typealias newint32 = int32;  

println(newint32.max)  

// 布爾值 隻有true false  

var 布爾值 = true  

println(布爾值)  

布爾值 = false  

// 元組  

// 多個不同類型的值組合成的一個複合值  

let 元組 = ("小明",28,95.5);  

// 取出元組裡面的值  

// 通過元組名. 下标的形式取出元組的内容  

println(元組.0)  

println(元組.2)  

// 如果我們聲明元組的時候,給元組裡面的内容前加一個名字, 那麼我們就可以通過 元組名.元素名字 的方式取出元組裡面的内容  

let 小韓 = (身高: 170,年齡:25 )  

println(小韓.身高,小韓.年齡)  

// 元組的分解  

let (身高,年齡) = 小韓  

println(身高,年齡)  

// 可選類型  

// 可選類型是用來處理值缺失的情況, 一個變量聲明成可選類型的話, 證明這個變量可能有值,也可能未空  

// 聲明一個可選類型  

var str: string?  

println(str)  

str = "hello,good morning"  

// 我們要使用可選類型變量值的話,需要把可選類型裡面的值解析出來, 方式:變量名 + ! ,這種方式叫做強制解析  

var astr = "95588"  

var aintofoptinal = astr.toint()  

println(aintofoptinal)  

// 強制解析之前我們要確定變量有值, 如果沒有值, 我們不能在可選類型後面 + !來強制解析  

var result1 = aintofoptinal! + 10  

println(result1)  

// 隐式解析類型  

// 為了我們使用可選類型的時候, 不用發每次都用強制解析的方式取值, 我們可以在聲明變量的時候在類型标注後面不用? 而用!的形式  

// for example  

var 隐式解析類型: int!  

println(隐式解析類型)  

隐式解析類型 = 20;  

// 斷言  

// 起到斷點調試的作用  

var bstr: string?  

bstr = "忘指派了"  

assert(bstr != nil, "字元串不為空")  

println(bstr!)  

// 運算符  

// 根據操作數的不同, 運算符可以分為一進制, 二進制, 三元運算符  

// + - *  /  %  

// +   

let a = 3; let b = 5  

var c = a + b  

println("c = \(c)")  

// -   

c = b - a  

// *  

c = a * b  

// /  

c = b / a  

// %  

c = a % b  

// 自增, 自減運算  

// ++  

var anumber = 10  

// ++ 在前取新值, ++ 在後取舊址 , 不管++在變量的前面, 還是在變量的後面, 該變量都會自增1  

let result = ++anumber + anumber++ + ++anumber  

println("result = \(result)")  

println(anumber++)  

// --  

let result2 = --anumber - anumber-- + --anumber  

println(--anumber)  

println(result2)  

// 複合運算符  

// +=   -=    /=     %=  

// +=  

var 變量 = 10  

變量 += 5 // 變量 = 變量 + 5  

// -=  

變量 -= 5  

//  /=  

變量 /= 2  

// %=  

變量 %= 1  

// 三目運算符  條件 ? 值1 : 值2 條件為真的時候取值1, 條件為假的時候取值2  

let maxnumber = 5; let minnumber = 3  

let result3 = maxnumber > minnumber ? maxnumber : minnumber  

println(result3)  

// 比較運算符 >, < , <= , >= ,== , !=  

if maxnumber > minnumber {  

    println( "\(maxnumber) 比 \(minnumber) 大")  

}  

if maxnumber < minnumber {  

    println("\(maxnumber) 比 \(minnumber) 小")  

if maxnumber <= minnumber {  

    println("\(maxnumber) 不比 \(minnumber) 大")  

if maxnumber >= minnumber {  

    println("\(maxnumber) 不比 \(minnumber) 小")  

if maxnumber != minnumber {  

    println("\(maxnumber) 不等于 \(minnumber) ")  

if maxnumber == minnumber {  

    println("\(maxnumber) 等于 \(minnumber)")  

// 邏輯運算符, 邏輯與 &&, 邏輯或 || , 邏輯非 !  

// 注意  邏輯與 邏輯或 的短路現象  

// 邏輯與 運算符前面條件為假, 運算符後面的語句就不走(一假即真)  

// 邏輯或 運算符前面條件為真, 運算符後面的語句就不走(一真即真)  

// 邏輯非 取反  

var num = 10  

if num++ == 10 || num-- > 0 {  

    println(num)  

// 空合運算符 ??   

var str = "123"  

var num3 = str.toint()  

// 判斷一個可選類型, 如果為空,就給一個常量指派 567, 如果不為空, 就取這個可選類型變量解析出來的值  

// 等價于  

if num3 == nil {  

    let result = 567  

    println(result)  

} else {  

    let result = num3!  

let result4 = num3 == nil ? 567 : num3!  

println(result4)  

let result5 = num3 ?? 567  

println(result5)  

// 區間運算符  

// (a...b) 包含 a 到 b 範圍内的數, 且包含 a 和 b  

// (a..<b) 包含 a 到 b 範圍的數, 包含 a  不包含 b  

for 數字 in (1...9) {  

    println(數字)  

for number in (1..<9) {  

    println(number)  

// 字元串  

// 在swift當中沒有可變字元串與不可變字元串之分, 字元串的可變與不可變隻有我們用let. 還是var 來修飾有關, 如果let修飾,那麼字元串不可變, var 修飾,這個字元串就可變  

var str = "hello,word"  

// 周遊字元串中的每個字元  

for 字元 in str {  

    println(字元)  

// 字元串的拼接, 我們可以直接通過運算拼接字元串  

str += " = 你好世界!"  

// 這種方式隻能拼接一個字元, 并且字元的位置在字元串的最後  

let charactor : character = "啊"  

str.append(charactor)  

// 判斷字元串是否有前字尾  

let astr = "meinv.png"  

if astr.hasprefix("meinv") {  

    println("有字首meinv")  

}else{  

    println("沒有字首")  

// 判斷字元串是否有字尾  

if astr.hassuffix(".png") {  

    println("png格式")  

    println("其他格式")  

// 判斷字元串是否為空  

if astr.isempty {  

    println("字元串為空")  

    println("字元串不為空")  

// 全部大寫  

let resultofstr = astr.uppercasestring  

println(resultofstr)  

// 全部小寫  

let resultofstr1 = astr.lowercasestring  

println(resultofstr1)  

// 首字母大寫  

let resultofstr2 = astr.capitalizedstring  

println(resultofstr2)  

// oc裡面的字元串  

let bstr : nsstring = "hello"  

let resultofstr3 = bstr.length  

println(resultofstr3)  

// 數組  

// 通過構造方法來建立一個空數組  

var array : array<string> = array()  

// 第二種  

var array1 = [int]()  

// 第三種  

var array2 : [string] = array()  

// oc裡面建立數組  

var array3 = nsarray()  

var arrayofbook = ["金瓶梅","玉女心經","玉蒲團","一路向西"]  

// 修改數組中的元素  

arrayofbook[3] = "西遊記"  

for element in arrayofbook {  

     println(element)  

// 另一種方式  

for (index,value) in enumerate(arrayofbook){  

    println((index,value))  

// swift2.0之後寫法 點文法  

//for (不知道,不知道2) in arrayofbook.enumerate{  

//    println((不知道,不知道2))  

//}  

arrayofbook[0...2] = ["三國演義","水浒傳","紅樓夢","通訊錄"]  

    println(element)  

// 插入元素  

arrayofbook.insert("射雕英雄傳", atindex: 0)  

// 删除元素  

arrayofbook.removelast()  

println(arrayofbook.capacity)  

// 删除所有元素  

// keepcapacity表示是否保持容量,如果參數為true的話, 同時把元素清為零,但是保留清空之前的空間, 如果參數為false 的話, 清空元素後每添加一個元素時,空間不夠用時,會開辟添加上一次元素空間的2倍  

arrayofbook.removeall(keepcapacity: false)  

// 判斷數組是否為空  

if arrayofbook.isempty {  

    println(arrayofbook.capacity)  

arrayofbook.insert("text", atindex: 0)  

   println(arrayofbook.capacity)  

// 字典  

// c語言的建立一個空字典方式  

var dict : dictionary<int, int> = dictionary()  

var dict2 : [string : string] = dictionary()  

// oc的形式  

var dict3 = nsdictionary()  

var studentofdict = ["name" : "小明","age" : 18]  

// 周遊子典裡面的所有的key  

for key in studentofdict.keys {  

    println(key)  

// 周遊字典裡所有的value  

for value in studentofdict.values{  

    println(value)  

// 給字典添加一個元素  

studentofdict["adress"] = "天下第一樓"  

println(studentofdict)  

// 删除一個元素  

studentofdict.removevalueforkey("adress")  

studentofdict["age"] = nil  

// 周遊字典裡面的key和value  

for (key,value) in studentofdict {  

    println((key,value))  

原文位址:http://blog.csdn.net/qq_31810357/article/details/50032053

繼續閱讀