Objective-C开发者,一天学会swift

来源:互联网 发布:html与java关系 编辑:程序博客网 时间:2024/04/27 21:28

之前一直一个人在工作,时间很紧,工作中一直没用过swift开发,虽然一直对swift心生向往,但是就没有抽时间去学习 swift ,昨天元旦堵车,所以就近找了家咖啡店坐下,无聊拿起平板看起了swift,看了许久,发现swift语言根本没有想象中的难。对于使用OC开发的IOS开发者来说,swift极其简单。唯一能限制他们学习进度的,我想就是没有人把swift上的一些属性总结起来,废话不多说,我现在就尝试把swift总结起来,以此作为自己学习swift的笔记

基础类型

常量和变量

//常量和变量//let - constants常量  let maxNum=32//var - variables变量  var index=0let maxNum=1000var index=0;//maxNum=999 error常量不能赋值var x=0.0,y=0.0,z=0.0//类型安全 当初始化是什么类型一般,就是什么类型//index="test" error类型不能改变var wevsiteName:String//初始化的时候申明变量类型wevsiteName="www.baidu.com"var red,greem,blue:Double//同时申明类型 ,类型有哪几种我就不说了,会计算机编程语言的应该都会//可以用不同进制let decimalInt:Int=17  //17let binaryInt:Int=0b10001//17let octalInt:Int=0o21//17let hexadecimalInt:Int=0x11//17//数字可以用下划线更清楚得表示let bignum_a=1000000//1,000,000let bignum_b=1_000_000//1,000,000let bignum_c=100_0000//1,000,000let num_a:Float=1.0//1let num_b:Float=1.2//1.2let num_c:Int=1//1//let num_c:Int=1.2 error//相加let a:Int=3//3let b:Double=0.1415926//0.1415926//let pi:Double=a+b error ,不能将 Int 和double相加let pi:Double=Double(a)+b//3.1415926//能使用中文作为常量名let 电脑:String="mac"//mac

布尔型

//布尔型/** swift中的bool型不同于OC是YES OR NO,是true or false*/let imtrueVar=true;let imfalseVar=false;if imfalseVar//不加上()如果加上只代表运算优先级{    print("i'm true!")//不执行}else if 3+4==7{    print("3+4=7!")//执行}//var a:Int=1//if a{//    print("i'm true")//}//error: int 1和0不能在选择语句中充当bool型的功能

元组

//元组 Tuples/*    1.将多个不同的值集合成一个数据        (true,"南京","人从",2105)    2.特点        可以有任意多个值        不同的值可以是不同类型*/let SearchPersonResult=(true,"南京","人从",2105)//取出元组中的值let (isSearchSuccess,city,Company,room)=SearchPersonResultisSearchSuccess//truecity//南京Company//人从room//2105//或者参照数组的取值SearchPersonResult.0//trueSearchPersonResult.1//南京SearchPersonResult.2//人从SearchPersonResult.3//2105//也可以在初始化的时候赋值let SearchPersonResultTwo=(isSearchSuccess:true,city:"南京",Company:"人从",room:2105)SearchPersonResultTwo.isSearchSuccess//trueSearchPersonResultTwo.city//南京SearchPersonResultTwo.Company//人从SearchPersonResultTwo.room//2105//使用下划线(_)忽略部分数值let SearchResult=(true,"南京")//let SearchResult:(Bool,String)=(true,"南京")let (SearchSuccess,_)=SearchResultif isSearchSuccess{    print("登录成功!")}

可选型

//Optionals 可选值/*    或者是一个值,或者是没有值    没有值时为nil*/var a:Inta=1var imOptionalVariable:Int?//nilimOptionalVariable=12//12//let userInput="abc"//var age=Int(userInput)//类型转换可失败构造,之前是toInt////if age != nil//{//    print("your age is\(age)")//执行,不执行//}else//{//    print("Invalidate userInput")//不执行//}let userInput="12"var age=Int(userInput)//类型转换可失败构造,之前是toIntif age != nil{    print("your age is\(age)")//执行->your age isOptional(12)    print("your age is\(age!)")//执行->your age is12--当你确认可选值中有值时,可以在age签名后面加上!//    print("your age is"+age)//error age是int型报错    print("your age is" + String(age))// your age isOptional(12)    print("your age is" + String(age!))// your age is12    }else{    print("Invalidate userInput")//不执行}//可选型解包if let userAge=Int(userInput){    print("your age is \(userAge)")//执行 your age is 12}else{    print("Invalidate userInput")//不执行}let strA:String?="test"//teststrA//teststrA!//testlet strB:String!="test"strB//test

运算符

//运算符/*和OC一样*/let a=5let b=2var c=0//if c=a{//} error 运算符没有赋值操作//a/c a%c 不能除0let d=5.2,e=1.7d/e//3.058823529411765d%e//0.1000000000000003Int.max//9223372036854775807//Int.max+1  error 溢出c++ //0c //0++c //2c //2c+=2 //4c-=2 //2//三目运算符不用解释//var question{//    answer1//}else//{//    answer2//}//question?answer1:answer2let statusBarHeight=20let basicViewHeight=548var inFullScreenMode:Bool=truevar viewHeight=basicViewHeight + (inFullScreenMode ? statusBarHeight : 0)

聚合运算符

//聚合运算符/*    针对可选型  a??b -> a != nil ? a! : b*/var userNickName:String?userNickName = "lijiajia"//if userNickName != nil//{//    print("hello,\(userNickName!)")//}else//{//    print("hello,Guest")//}//let outputName:String=userNickName != nil ? userNickName! : "Guest"let outputName:String=userNickName ?? "Guest"print("Hello," + outputName)//Hello,lijiajia

区间运算符

//区间运算符/*     [a,b] a...b     [a,b) a..<b*/for index in 1...10{    index//10 times}for index in 1..<10{    index//9 times}let courseNames = ["ddd","aa","cc"]for index in 0 ..< courseNames.count{   print(courseNames[index])//3times}


字符操作


//字符串/*    let String->NSString    var String_>NSMutableString*/var str="Hello, Playground"let str2="I'm an immutable string"str="hi"//str2="dd" error 常量 //遍历字符串for c in str.characters{    print(c)//2times}var ch:Character="!"//var ch:Character="!d" errorstr.append(ch) //hi!str//hi!//str +=ch errorvar str3="??"str += str3//hi!??str.characters.count//5

var str="Hello, Playground"//字符串拼接//String Concatenatingstr + "hello"//"Hello, Playgroundhello"str  //"Hello, Playgroundhello"str += "hello,Amily"//Hello, Playgroundhello,Amilystr //Hello, Playgroundhello,Amilylet ch:Character = "!"str.append(ch)//Hello, Playgroundhello,Amilystr// Hello, Playgroundhello,Amily!//将这种类型插入字符串的时候\(变量名)let imInt:Int = 2let imDouble:Double = 3.111print("Int:\(imInt) double:\(imDouble)")//字符串比较let str_a = "abc"let str_b = "abc"str_a == str_b//truelet str_c = "abd"str_a < str_c // truelet str_d = "abcd"str_d < str_c //truelet chapterNames = ["1dgdg","2dgdg","3dgdg","4dgdg","2dgdg"]var count = 0for name in chapterNames{    if name.hasPrefix("2")//以2开头    {        count++    }}countcount = 0for name in chapterNames{    if name.hasSuffix("2")//以2结尾    {        count++    }}count


import Foundationvar str = "Hello playground"//Hello playgroundstr.hasPrefix("Hello")//truestr.capitalizedString//Hello Playgroundstr//转换大写str.uppercaseString//转换小写str.lowercaseString//trimvar str2 = "      !hi!!!!!    "//"      !hi!!!!!    "str2.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())//"!hi!!!!!"str2.stringByTrimmingCharactersInSet(NSCharacterSet(charactersInString: " !"))//"hi"//splitvar str3 = "welcome to play swift"//"welcome to play swiftstr3.componentsSeparatedByString(" ")//"["welcome","to","play","swift"]str3 = "welcome to play swift!Step-by_Step learn from now"str3.componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: " !-"))
var str = "welcome to play swift!Step-by_Step learn from now"//range str.rangeOfString("Step")//22..<26str.rangeOfString("Step", options: NSStringCompareOptions.BackwardsSearch, range: nil, locale: nil)//30..<34 反过来查找str.startIndexstr.endIndexlet strRange = Range<String.Index>(start: str.startIndex, end: str.endIndex)//0..<49let startIndex:String.Index = str.startIndexlet endIndex:String.Index = str.startIndex.advancedBy(10)let searchRange = Range<String.Index>(start: startIndex, end: endIndex)str.rangeOfString("Step", options: NSStringCompareOptions.CaseInsensitiveSearch, range: searchRange, locale: nil)//nil//substring var  toIndex=str.startIndex.advancedBy(4)var  fromIndex=str.startIndex.advancedBy(14)str.substringFromIndex(fromIndex)//ome to play swift!Step-by_Step learn from nowstr.substringToIndex(toIndex)//welcstr.substringWithRange(Range<String.Index>(start: toIndex, end:fromIndex))//ome to pla//inseartvar inseartIndex = str.startIndex.advancedBy(22)str.insert("!", atIndex:inseartIndex)//removestr.removeAtIndex(inseartIndex)str.removeRange(Range<String.Index>(start: str.startIndex, end:inseartIndex))// replacevar replaceEndIndex = str.startIndex.advancedBy(13)str.stringByReplacingCharactersInRange(Range<String.Index>(start: str.startIndex, end: replaceEndIndex), withString: "Step-by_Step")


0 0
原创粉丝点击