在學習swift的一些筆記(一)

-objective-c與swift打印日志的區(qū)別


objective-c中的日志打印代碼:

NSLog(<#NSString *format, ...#>)
NSLog(@"OC 中的日志信息");

第一行代碼是打印的格式禀倔,打印方法,打印函數(shù).

第二行代碼是在<#NSString *format, ...#>所輸出的信息缕贡,在日志中得到的信息為:OC 中的日志信息.

objective-c中在打印日志里增加參數(shù),打印參數(shù)的信息:

NSLog(@"OC 中的日志信息 %d",num);
NSLog(@"%d + %d = %d",one,tow,equalTo);

第一行代碼中的%d是占位符而num是變量的名稱翁授,打印的信息是:OC 中的日志信息num變量中所儲存的值.

第二行代碼打印的是one+tow=equalTo這三個變量的值和符號而不是進行計算.

** swift語言的日志打印代碼:**

println();
println("swift 中的日志信息");

第一行代碼是swift的打印函數(shù).
第二行為打印的具體內(nèi)容輸出日志信息為:(swift 中的日志信息).

swift中在打印日志里增加參數(shù),打印參數(shù)的信息:

println("呵呵",num,"哈哈");
println("a的值為",a,"b的值為",b);

第一行代碼中bum為變量的名稱晾咪,與OC中不同的是不再需要占位符而是直接用,號隔開就可以打印收擦,打印結果為:(呵呵,num的值谍倦,哈哈).

第二行代碼a,b都是變量,打印的值為 (a的值為,a變量的值,b的值為,b變量的值).

- objective-c與swift變量與常量


** 在objective-c中的常量:**

NSString * const name = @"jack";

這行代碼代表著一個名叫name的常量 指向了一個內(nèi)存區(qū)域儲存了一個字符串jack塞赂,并且這個指向的區(qū)域不可以改變,也就是說無法在賦值新的字段給這個常量了.

** 在objective-c中的變量:**

NSString * name = @"jack"
name = @"Anthony"

第一行代碼代表著一個名叫name的變量昼蛀,指向了一個內(nèi)存區(qū)域儲存了一個字符串jack.
在第二行代碼中將一個新的字段Anthony的坐標賦值給了name宴猾,這樣變量name所儲存的值發(fā)生了改變,并且在聲明objective-c的變量與常量中必須指定數(shù)據(jù)類型.

** 在swift中的常量:**

let b = 2;

常量在聲明的時候必須賦值 并且只能賦值一次,常量賦值時要用 let 做前綴.

在swift中的變量:

var b;

變量在聲明的時候可以不賦值叼旋,并且可以賦值覆蓋多次仇哆,swift不管是常量還是變量在聲明的時候可以不指定數(shù)據(jù)類型,編輯器會自動補上.

在swift中數(shù)據(jù)類型的聲明:

var b:Double = 66.66;

數(shù)據(jù)常量變量類型 變量名稱 :數(shù)據(jù)類型 = 值夫植;
var = 變量讹剔,常量的修飾符
b = 變量名稱;
: = 指定數(shù)據(jù)類型的修飾符
Double = 數(shù)據(jù)類型
“=” = 賦值符
66.66 = 值详民;
以上就是一個變量并且指定聲明數(shù)據(jù)類型的格式;

- objective-c與swift的判斷與循環(huán)


在objective-c中if與else的使用:

objective-c是一門弱語法,在使用if與else中我們可以寫出以下代碼:

  • 1
NSString *str = @"jack";
if(str){
    str = @"杰克"; 
}
  • 2
int a =3;
int b =3;
if(a-b){
  a = 4;
}

在第一個代碼中我們首先創(chuàng)建了一個字符串并把字符串放進if的判斷語句中,這時if判斷對象不為nil,判斷條件成功,執(zhí)行if代碼塊中的語句.

在第二個代碼中,設置了2個變量,在if的判斷語句中做減法,在基本數(shù)據(jù)類型中,如果在if判斷語句的結果不為0就都為真,如果是0就為假,所以第二個代碼段中的if語句不執(zhí)行

在swift中if與else的使用:

var a =3;
var b =3;
if(a == b){
  a = 4;
}

在swift中if( )中所填寫的代碼必須是一個布爾表達式,不可以和objective-c那樣放一個變量看是否為0或是否為nil

在objective-c中switch,case,default的使用:

 
    int i = 0;
    switch (i) {
        case 1:{
            int b = 3;
        }
        break;
        default:
        NSLog(@"沒執(zhí)行");
        break;
    }

在objective-c中switch是可以使用整數(shù)型和枚舉型來進行流程分支的控制當獲得匹配的case值時,執(zhí)行case后的代碼段,要注意的是如果case代碼段后面沒有break那么case會繼續(xù)執(zhí)行下去,直到遇到break,default可以不寫,需要注意的是如果在swich的case代碼中定義變量那么要加{}來將代碼擴起來.

在swift中switch,case,default的使用:

 let name = "jack"
    
    switch name {
        
    case "jack":
        let print = "hehe";
        println(print);
    case "David":
        let print  = "heihei";
        println(print);
    default:
        let print  = " houhou";
        println(print);
        
    }

在swift中switch要比objective-c能夠使用更多的數(shù)據(jù)類型來進行流程控制,并且在case中不需要在加入break如果執(zhí)行一個case會自動的彈出不會執(zhí)行其他的情況,在case中可以直接定義變量,在swift中如果case不能包含所有可發(fā)生的情況就必須有default.

fallthrough 貫穿 where

fallthrough 在case最后加等價于以前的OC不寫break
where 在case后 可以做額外的條件判斷

在objective-c中for循環(huán)的使用:

 for (int i = 0 ; i <3 ; i++) {
    NSLog(@"%d,",i);
}
for (NSString * str in arr) {
    NSLog(@"%@",str);
}

在objective-c中的2種循環(huán):

第一種種先執(zhí)行第一個表達式,然后執(zhí)行括號中的代碼,在執(zhí)行第二個表達式,根據(jù)真假,如果是真就執(zhí)行第三個表達式,然后繼續(xù)繼續(xù)執(zhí)行代碼,如果為假的情況下跳出循環(huán).

第二種,將arr中的所有元素挨個賦值給str 并執(zhí)行代碼段.

在swift中for循環(huán)的使用:

for var index = 0 ; index < 7 ; ++index{
   println("傳統(tǒng)for \(index)");
}

與傳統(tǒng)的objective-c區(qū)別不大唯一變化的是var聲明方式,和 ()可以省略

for index in 1...3{
    println(index);
}

將 1...3 包含3的數(shù)字 依次賦值給index 每賦值一次執(zhí)行一次代碼段

在objective-c中while,do...while的使用:

while (YES) {
       
}
do{
    
}while(YES);

objective-c中和其他語言沒有太大的區(qū)別,while是先判斷{}內(nèi)的表達式,然后執(zhí)行代碼段,而do...while是先執(zhí)行依次代碼段在判斷表達式.

swift中while,do...while的使用::

 var i = 0;
        
 while i < 7{
            
     i+=1
 }
        
 do{
     i-=1;
 }while i < 0 ;

swift中while,do...while與objective-c基本沒什么區(qū)別.

2.0 將do - while改版



repeat{
   print("循環(huán)")
}while(true);

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末延欠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子阐斜,更是在濱河造成了極大的恐慌衫冻,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谒出,死亡現(xiàn)場離奇詭異隅俘,居然都是意外死亡邻奠,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門为居,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碌宴,“玉大人,你說我怎么就攤上這事蒙畴》×停” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵膳凝,是天一觀的道長碑隆。 經(jīng)常有香客問我,道長蹬音,這世上最難降的妖魔是什么上煤? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮著淆,結果婚禮上劫狠,老公的妹妹穿的比我還像新娘。我一直安慰自己永部,他們只是感情好独泞,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著苔埋,像睡著了一般懦砂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上组橄,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天孕惜,我揣著相機與錄音,去河邊找鬼晨炕。 笑死,一個胖子當著我的面吹牛毫炉,可吹牛的內(nèi)容都是我干的瓮栗。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼瞄勾,長吁一口氣:“原來是場噩夢啊……” “哼费奸!你這毒婦竟也來了?” 一聲冷哼從身側響起进陡,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤愿阐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后趾疚,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缨历,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡以蕴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了辛孵。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丛肮。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖魄缚,靈堂內(nèi)的尸體忽然破棺而出宝与,到底是詐尸還是另有隱情,我是刑警寧澤冶匹,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布习劫,位于F島的核電站,受9級特大地震影響嚼隘,放射性物質發(fā)生泄漏诽里。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一嗓蘑、第九天 我趴在偏房一處隱蔽的房頂上張望须肆。 院中可真熱鬧,春花似錦桩皿、人聲如沸豌汇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拒贱。三九已至,卻和暖如春佛嬉,著一層夾襖步出監(jiān)牢的瞬間逻澳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工暖呕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留斜做,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓湾揽,卻偏偏與公主長得像瓤逼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子库物,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容