常量和变量
  • 用let声明常量
     let m
= 20
  • 用var声明变量
     var n = 0
  • 类型推导机制
          声明常量或变量时。能够不指定常量/变量类型,编译器会依据初始化值自己主动推导类型。也能够显示指定变量类型:
     var str:String
= "12345"
     var num:UInt
= 12
     var i:Float
= 3.14
     
数据类型
类型别名
  • 能够使用typealiaskeyword定义类型别名。跟C语言的typedef作用类似
     typealias
XXInt =
Int;
     //给Int类型去了以个别名XXInt


运算符
赋值运算符
  • 一对一赋值
     var
a =
20
     var
b =
a
  • N对N赋值
     let
(x, y) = (10,
20)
  • 跟C/OC不一样。Swift赋值运算符没有返回值
  • OC
int
a =
10;
     int b = a =
;
     //以上赋值语句正确,b
= 20

Swift
var b = a =
20;
if
(a
=
b) { }
//以上赋值语句错误。b没有值。()中的表达式也没有值,能够防止误用=和==
求余运算符
  • 求余结果的符号取决于%左边数字的符号(与C/OC一样)
  • 能够对浮点数求余
          
var z =
8 %
2.5 //0.5
Bool类型
  • 在C语言中,0是假。非0是真。在Swift中Bool类型就两种值:
          true:真
          false:假
  • if语句的条件必须是Bool类型
范围运算符
  • 范围运算符用来表示一个范围,有2种类型的范围运算符
          闭合范围运算符:a…b,表示[a, b],包括a,b
          半闭合范围运算符:a..<b,表示[a, b), 包括a,不包括b
for
index
in 0..<5
{
   
print(index)
}
溢出运算符
每种数据类型都有自己的取值范围,默认情况,一旦赋值一个超出范围的数值,就会产生编译错误或执行时错误。
  • Swift为整形计算提供了5个&开头的益处运算符,能够对超出范围的值进行处理。
          &+、&-、&/、&*、&%
          上溢出
     var
x:UInt8
=
255;
     var
y =
x &+
1  //y的值为0
         
          下溢出
     var
x:Int8
= -128;
     var
y =
x &-
1  //y的值为127
 
          除0溢出
     var
x =
10;
     var
y =
x &/

//y的值为0

     var
x =
10;
     var
y =
x &% 0 
//y的值为0

元组类型
  • 什么是元组类型?
          元组类型由N个随意类型的数据组成(N >=0)
          组成元组类型的数据称为“元素”
var
point = (x:10.0, y:20.0)
//point有两个元素,x、y是元素名称

let
person = (name:
"Job")
//person仅仅有name一个元素

let
data = ()
//空元组
  • 元组的訪问
          用元素名称訪问
     let
value =
point.x
//取值
     point.x =
30.0
//设值
        
          用元组位置訪问
let
value =
point.0
//取值
point.0
=
30.0 //设值
         
          假设用let修饰一个元组,那么该元组为常量。无法改动元素的值
  • 元组的输出
          能够直接输出元组来查看全部元素的值
          
print(point)
  • 使用细节
          能够省略元素名称
     var
point = (10.0,
20.0)
     let
person = (20,
"Job")
         
          能够显式指定元素的类型
     let
person:(UInt8,
String) = (20,
"Job")
          peson的第一个元素仅仅能是UInt类型。第二个元素仅仅能是String类型
          在显示指定元素类型的情况,不能加入元素名称,以下的语句是错误的
     let
person:(UInt8,
String) = (age:20,
name:"Job")

          能够用多个变量接收元组数据
     var
(x, y) = (20,
30)
//x是20,
y是30
     var
point = (x,
y)
//point由两个元素组成,各自是20,30

          能够将元素赋给多个变量
var
point = (20,
30)
var
(x, y) =
point
//x是20,
y是30

能够用_(下划线)忽略某个元素的值,仅仅取出其它元素的值
let
person:(UInt8,
String) = (20,
"Job")
var
(_,name) =
person

Swif语法基础 要点归纳(一)的更多相关文章

  1. Objective-C 2.0 基础要点归纳

    本文的阅读基本条件: 具备C/C++基础知识,了解面向对象特征 阅读过<Objective-C 2.0 程序设计(第二版)>.<Objective-C 程序设计 第6版>或相关 ...

  2. JAVA语法基础要点

  3. HTML基础要点归纳

    一.开发环境 常用的HTML编辑器有Sublime Text.Hbuild.Dreamweare.以及vs code.pycharm等都可以.我目前在用的就是Sublime text3和Hbuild两 ...

  4. CORS基础要点:关于dataType、contentType、withCredentials

    事实上,面试时我喜欢问跨域,因为多数开发者都知道它并且常用,而我希望能从面试者的回答中知道他在这个问题的深入程度,进一步看看面试者研究问题的思维方式及钻研精神,然而确实难到了很多人,当然这也不是面试通 ...

  5. JAVA 入门第一章(语法基础)

    本人初学java 博客分享记录一下自己的学习历程 java我的初步学习分为六章,有c和c++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 ...

  6. python基础入门一(语法基础)

    作为自己正式接触并应用的第一门编程语言,在Alex和武sir两位大王的要求下,开始了写博客总结的日子.学习编程语言是很有趣的一件事情,但有2点请一定要谨记:1.做人靠自己,码代码也必须靠自己.能不能成 ...

  7. PHP语法基础

    1.PHP语法基础 PHP标记符 <?php ?> 常亮与变量 $a = 10; 变量 可以在运行过程中修改 $a = 10; $a = 20; $b = 5; echo $a+$b; c ...

  8. Verilog语法基础讲解之参数化设计

    Verilog语法基础讲解之参数化设计   在Verilog语法中,可以实现参数化设计.所谓参数化设计,就是在一个功能模块中,对于一个常量,其值在不同的应用场合需要设置为不同的置,则将此值在设计时使用 ...

  9. C#语法基础和面向对象编程

    1.C#语法基础 http://www.cnblogs.com/tonney/archive/2011/03/16/1986456.html 2.C#与面向对象基础 很棒的资源,简明扼要,介绍的非常清 ...

随机推荐

  1. Springboot+Redis序列化坑

    今天在测试springboot整合redis的时候遇到下面这个坑,百度来百度去发现提示都是ajax的问题,真的是醉了,错误提示如下所示,不信大家可以直接复制百度一下答案是什么(流泪中....),错误如 ...

  2. 用Java画QRCode二维码

    支付宝.微信扫码支付的二维码,第三方的类库QRCode.jar 还是很好用的.下面贴出来这个东东生成二维码的代码. 使用时注意包括图片地址.编码内容.图片属性等几个参数,支付宝的它们的扫码回调地址. ...

  3. 【问题帖】压缩图片大小至指定Kb以下

    像PS,QQ影像等都有该功能,将图片大小压缩至指定kb以下. 我也来山寨一把,到目前为止,控制图片的大小,平时的解决方案通过分辨率和质量来控制的. 假定最后压缩的大小是100kb,那么在保证不大于10 ...

  4. Demystifying iOS Application Crash Logs

    http://www.raywenderlich.com/23704/demystifying-ios-application-crash-logs This is a blog post by So ...

  5. vboxmanage查询正在运行的vbox虚拟机

    系统:linux通用,virtualbox5.0 每次用下面命令启动vm虚拟机时,发现没办法知道它的IP. $ vboxmanage startvm <vmname> --type hea ...

  6. Centos 环境变量

    1. 控制台中,不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时候又要重新设置,比较麻烦. 这个只针对特定的shell; $ PATH=" ...

  7. C#读取JSON字符串

    下面这个是一段JSON字符串宏观图 下面我们通过C#读取JSON字符串里的任何一个数值 string jsonString="上面JSON字符串"; //需要引用Newtonsof ...

  8. Nginx模块GeoIP匹配处理IP所在国家、城市

    https://www.haiyun.me/archives/nginx-geoip.html

  9. 史上最全的web前端开发程序员学习清单!

    今天为什么要给大家分享这篇文章呢,我发现最近来学前端的特别多,群里面整天都有人问:前端好找工作吗?前端要怎么学啊?前端工资怎么样?前端XX,前端XXX,虽然我回答过无数次这种问题了,但是问这个的还是有 ...

  10. Google Kickstart Round E 2018 B. Milk Tea

    太蠢了,,,因为初始化大数据没过,丢了10分,纪念一下这个错误 大概思路:先求出让损失值最小的排列,由已生成的这些排列,通过更改某一个位置的值,生成下一个最优解,迭代最多生成m+1个最优解即可,遍历求 ...