【Swift】学习笔记(一)——熟知 基础数据类型,编码风格,元组,主张

【Swift】学习笔记(一)——熟知 基础数据类型,编码风格,元组,主张

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

自从苹果宣布swift之后,我一直想了解,他一直没有能够把它的正式学习,从今天开始,我会用我的博客来驱动swift得知,据我们了解还快。


1、定义变量和常量

var  定义变量,let定义常量。

比如:

var test = 1
test = 2  //变量能够改变值

let test = 1
test = 2   //常量不能改变值,编译器会报错

var test1=1,test2=2,test3=3  //逗号分隔多个变量

2、添加类型标注

在 var test = 1 这个样例中。test被swift判断为int类型。

swift是类型安全的。

var test: Int = 1  这个定义和上面是一样的。仅仅是给test这个变量添加了一个类型标注。告诉swfit不用判断了。


3、基础数据类型

Int表示整型值;DoubleFloat表示浮点型值;Bool是布尔型值;String是文本型数据;Character是字符类型。Swift 还提供了两个主要的集合类型。ArrayDictionary

4、全局输出函数 printlnprint 

这个大家都知道,换行和不换行的差别。输出到控制台。

比如:println(“this is my first swift test”)

如今要把上面定义的test进行输出怎么办?

println(“test value = \(test)”)

Swift 用字符串插值(string interpolation)的方式把常量名或者变量名当做占位符增加到长字符串中,Swift 会用当前常量或变量的值替换这些占位符,就是\()


5、凝视    //当行凝视  /*  */片段凝视

6、分号  可要可不要。任意,可是假设一行写多条独立的语句就必需要分号了

比如:let test = “test”;println(test)


7、整数  整数分为有符号(正,负,0)和无符号(正,0)

Swift 提供了8,16。32和64位的有符号和无符号整数类型。这些整数类型和 C 语言的命名方式非常像。比方8位无符号整数类型是UInt8。32位有符号整数类型是Int32。

就像 Swift 的其它类型一样。整数类型採用大写命名法。

let minValue = UInt8.min  // minValue 为 0。是 UInt8 类型的最小值
let maxValue = UInt8.max  // maxValue 为 255。是 UInt8 类型的最大值

Int UInt

一般来说。你不须要专门指定整数的长度。Swift 提供了一个特殊的整数类型Int,长度与当前平台的原生字长同样:


在32位平台上,Int和Int32长度同样。

在64位平台上,Int和Int64长度同样。


Swift 也提供了一个特殊的无符号类型UInt,长度与当前平台的原生字长同样:

在32位平台上。UInt和UInt32长度同样。
在64位平台上,UInt和UInt64长度同样

8、浮点数

Double Float

浮点数是有小数部分的数字

浮点类型比整数类型表示的范围更大。能够存储比Int类型更大或者更小的数字。

Swift 提供了两种有符号浮点数类型:

Double表示64位浮点数。当你须要存储非常大或者非常高精度的浮点数时请使用此类型。

Float表示32位浮点数。

精度要求不高的话能够使用此类型。

Double准确度非常高。至少有15位数字,而Float最少仅仅有6位数字。选择哪个类型取决于你的代码须要处理的值的范围。


9、数值型字面量


整数字面量能够被写作:

一个十进制数。没有前缀
一个二进制数。前缀是0b
一个八进制数,前缀是0o
一个十六进制数。前缀是0x

浮点字面量能够是十进制(没有前缀)或者是十六进制(前缀是0x)。小数点两边必须有至少一个十进制数字(或者是十六进制的数字)。浮点字面量另一个可选的指数(exponent)。在十进制浮点数中通过大写或者小写的e来指定。在十六进制浮点数中通过大写或者小写的p来指定。

假设一个十进制数的指数为exp。那这个数相当于基数和10^exp的乘积:

1.25e2 表示 1.25 × 10^2,等于 125.0。
1.25e-2 表示 1.25 × 10^-2,等于 0.0125。

假设一个十六进制数的指数为exp,那这个数相当于基数和2^exp的乘积:

0xFp2 表示 15 × 2^2,等于 60.0。
0xFp-2 表示 15 × 2^-2,等于 3.75。
以下的这些浮点字面量都等于十进制的12.1875:

let decimalDouble = 12.1875
let exponentDouble = 1.21875e1
let hexadecimalDouble = 0xC.3p0
数值类字面量能够包括额外的格式来增强可读性。整数和浮点数都能够加入额外的零而且包括下划线,并不会影响字面量:

let paddedDouble = 000123.456
let oneMillion = 1_000_000
let justOverOneMillion = 1_000_000.000_000_1

   

看起来就头疼,哪那么麻烦都用十进制不就好了。。。  吐吐槽 还是有点用的。

。。


10、字符类型的类型转换

var one: Int = 10
var two = 3.11
var three = Double(one) + two  //Double有整型构造器,其他整数类型一样处理,这里是演示样例

11、布尔值  true  false


12、类型别名  typealias

给整型改个名字,意义不大。

阅读性变差。。比如

typealias MyInt = Int
var test: MyInt = 123

13、元组 这个挺重要的

元组(tuples)把多个值组合成一个复合值。

元组内的值能够使随意类型。并不要求是同样类型。

比如创建一个(Int,String)类型的元组  :  (500,”server error”)

let Mytuples = (500,"server error") //定义一个元组
let (code,message) = Mytuples      //将元组数据分解输出
let (code,_) = Mytuples             //仅仅须要第一个值 。不须要的用_表示吧
println("code is \(code)")         //输出500
println("code is \(Mytuples.0)")   //通过下标訪问  输出500
let Mytuples2 = (code:500,message:"server error")   //定义一个带參数名称的元组
println("code is \(Mytuples2.code)");//通过元组元素名称訪问  输出500 

14、可选类型 

使用可选类型(optionals)来处理值可能缺失的情况。

可选类型表示:

有值,等于 x
或者
没有值  nil

let possibleNumber = “123”
let convertedNumber = possibleNumber.toInt()
// convertedNumber 被猜測为类型 “Int?

“, 或者类型 “optional Int”
由于toInt方法可能会失败。所以它返回一个可选类型(optional)Int,而不是一个Int。一个可选的Int被写作Int?

而不是Int。问号暗示包括的值是可选类型,也就是说可能包括Int值也可能不包括值。

(不能包括其它不论什么值比方Bool值或者String值。仅仅能是Int或者什么都没有。)

if convertedNumber {
    println("\(possibleNumber) has an integer value of \(convertedNumber!)")
} else {
    println("\(possibleNumber) could not be converted to an integer")
}
// 输出 "123 has an integer value of 123"

你能够在可选的名字后面加一个感叹号(!)来获取值


上面的多麻烦啊  还得推断变量有没有值:用if推断,再用进行强制解析

能够用可选绑定来简化代码:

if let actualNumber = possibleNumber.toInt() {
    println("\(possibleNumber) has an integer value of \(actualNumber)")
} else {
    println("\(possibleNumber) could not be converted to an integer")
}
// 输出 "123 has an integer value of 123"

也能够用隐式解析可选类型来处理(确定变量总是会有值才行,否则会出错的)

let assumedString: String! = "An implicitly unwrapped optional string."
println(assumedString)  // 不须要感叹号
// 输出 "An implicitly unwrapped optional string."


15、断言  推断逻辑 true继续运行  false 结束应用

比如:let a = 1;assert(a >= 0)  就会触发


版权声明:本文博主原创文章。博客,未经同意不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116776.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java下载 文件_Java下载文件的几种方式「建议收藏」

    java下载 文件_Java下载文件的几种方式「建议收藏」1.以流的方式下载.publicHttpServletResponsedownload(Stringpath,HttpServletResponseresponse){try{//path是指欲下载的文件的路径。Filefile=newFile(path);//取得文件名。Stringfilename=file.getName();//取得文件的后缀名。Strin…

    2022年7月7日
    59
  • DUMPBIN命令使用详解

    DUMPBIN命令使用详解DUMPBIN命令使用详解2018-08-07有可能你会遇到“’dumpbin’不是内部或外部命令,也不是可运行的程序或批处理文件。”的提示,怎么办呢?1.找到VCVARS32.bat,比如在我的机器上其路径为:C:\ProgramFiles\MicrosoftVisualStudio8\VC\bin\vcvars32.bat2.将VCVARS32.bat拖放…

    2022年6月19日
    39
  • 淘宝,天猫,京东,苏宁抢购茅台、手机等脚本(适合兼职,亲测可用)「建议收藏」

    淘宝,天猫,京东,苏宁抢购茅台、手机等脚本(适合兼职,亲测可用)「建议收藏」由来:最近用钱比较多,缺钱,自己也是除了一份死工资就没有别的收入了,而且每个月的工资发了就立马还给了马爸爸,所以一直在想是不是工作之余搞点什么兼职做做,但是一直也是找不到什么门路。碰巧看到uc给我推了一个文章(其实一直有推只是之前没有想法每注意),说天猫,京东,苏宁这些网购平台的茅台90%都是买来卖的,一瓶利润能有一千块。我顿时有了想法,就想着能不能搞个脚本啥的去抢抢,总比自己手动来得好,然后就上网去找脚本,修修补补改改,基于别人的基础上搞了个脚本(目前只有安卓版,后续可能会出苹果的)。然后坚持了几天,

    2022年5月16日
    104
  • python输出结果换行_浅谈Python3中print函数的换行「建议收藏」

    最近看了看Python的应用,从入门级的九九乘法表开始,结果发现Python3.x和Python2.x真的是有太大的不同之处,就比如这里的换行处理,怕忘记先记下来,好了,咱移步下文——Python2.X中的代码:1234567891011121314151617#!/usr/bin/envpython#-*-coding:utf-8-*-__author__=’****’classPr…

    2022年4月16日
    274
  • 使用InetAddress

    使用InetAddress17.2Java的基本网络支持  Java为网络支持提供了java.net包,该包下的URL和URLConnection等类提供了以编程方式访问Web服务的功能,而URLDecoder和URLEncoder则提供普通字符串和application/x-www-form-urlencodedMIME字符串相互转换的静态方法。  17.2.1使用InetAddress

    2022年6月23日
    22
  • html制作图片幻灯片效果代码,【JS+CSS3】实现带预览图幻灯片效果的示例代码

    html制作图片幻灯片效果代码,【JS+CSS3】实现带预览图幻灯片效果的示例代码一、前期准备1.1案例分析适用场景:单例布局1.2方法论V视图HTML+CSS+调试Cjs实现控制流程D数据优化扩展二、代码结构h2captionh3caption样式(CSS略)脚本功能开发>>内容输出Template改造输出幻灯片&控制按钮图片位置调整>>切换控制切换幻灯片.main_i_active切换控制按钮.ctrl…

    2022年7月13日
    17

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号