Swift语法基础入门一(适合有C, OC开发人员)
Swift开发体验
/*:
创建对象
* OC: alloc initWithXXX 方法
* Swift: (xxx:)
*/
/*:
调用方法
* OC: [UIColor redColor];
* Swift UIColor.redColor()
*/
/*:
枚举
* OC: UIButtonTypeContactAdd
* Swift: UIButtonType.ContactAdd
*/
//[[UIView alloc] init];
//[[UIView alloc] initWithFrame: ];
//let view = UIView()
let view = UIView(frame:CGRect(x: 0, y: 0, width: 100, height: 100))
view.backgroundColor = UIColor.redColor()
let btn = UIButton(type: UIButtonType.ContactAdd)
btn.center = view.center
view.addSubview(btn)
注释
- Swift 的编译器将会在编译代码时自动忽略掉注释部分
- 单行注释 //
- 多行注释 /**/
与 C 语言多行注释不同,Swift 的多行注释可以嵌套在其它的多行注释之中嵌套多行注释
- 注释嵌套 //**//
常量和变量
常量变量
- let 常量: 常量的值一旦设定就不能改变
- var 变量: 变量的值可以随意更改
- 常量&变量的使用原则:
- 为保证数据的安全性尽量先用 let,只有需要改变的时候才使用 var
常量定义格式
- 声明符号 常量名称: 类型标注
- let number: Int
- 特点: 一旦设定就不能改变
let number: Int = 10
//number = 20
定义变量格式
- 声明符号 变量名称: 类型标注
- var number: Int
- 特点: 变量的值可以随意更改
- 注意: 一般来说你很少需要写类型标注。如果你在声明常量或者变量的时候赋了一个初始值,Swift可以推断出这个常量或者变量的类型
var number2: Int = 10
number2 = 20
类型推断
- 编译器可以在编译代码的时候自动推断出表达式的类型。(其它语言是没有类型推断)
- 原理很简单,只要检查你赋的值即可
- 如果没有指定表达式的类型, 也没有赋予初始值, 编译器会报错(type annotation missing in pattern)
let number3 = 10
var number4 = 20.1
// 注意点: 如果没有指定表达式的类型, 也没有赋予初始值, 编译器会报错
var number5: Int
number5 = 88
类型安全
- Swift 是一个类型安全(type safe)的语言, 它会在编译你的代码时进行类型检查(type checks),并把不匹配的类型标记为错误。这可以让你在开发的时候尽早发现并修复错误
- swift 对数据类型要求异常严格, swift 中任何时候,都不会做
隐式转换,如果要对不同类型的数据进行计算,必须显示类型转换 注意: - 结合数字类常量和变量不同于结合数字类字面量。字面量8可以直接和字面量3.1415926相加,因为数字字面量本身没有明确的类型。它们的类型只在编译器需要求值的时候被推测
- Double和CGFloat也需要转换
//let number6: Int = 10.1
let number7 = 10
let number8 = 10.1
//let sum = number7 + number8
let sum = Double(number7) + number8
let sum1 = number7 + Int(number8)
// 字面量之间运算可以是不同类型
let sum2 = 10 + 10.1
// CGFloat/Double
let point = CGPoint(x: 10.10, y: 20.20)
let temp = point.x
let sum3 = Double(temp) + number8
常量和变量的命名
- 你可以用任何你喜欢的字符作为常量和变量名,包括 Unicode 字符
- 常量与变量名不能包含数学符号,箭头,保留的(或者非法的)Unicode 码位,连线与制表符
- 也不能以数字开头,但是可以在常量与变量名的其他地方包含数字
- ... 和C和OC一样
注意:
- 如果你需要使用与Swift保留关键字相同的名称作为常量或者变量名,你可以使用反引号(`)将关键字包围的方式将其作为名字使用。
- 无论如何,你应当避免使用关键字作为常量或变量名,除非你别无选择。
//let
Swift语法基础入门一(适合有C, OC开发人员)的更多相关文章
- Swift语法基础入门三(函数, 闭包)
Swift语法基础入门三(函数, 闭包) 函数: 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被用于“调用”函数 格式: ...
- Swift语法基础入门四(构造函数, 懒加载)
Swift语法基础入门四(构造函数, 懒加载) 存储属性 具备存储功能, 和OC中普通属性一样 // Swfit要求我们在创建对象时必须给所有的属性初始化 // 如果没办法保证在构造方法中初始化属性, ...
- Swift语法基础入门二(数组, 字典, 字符串)
Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变 ...
- .net core +codefirst(.net core 基础入门,适合这方面的小白阅读) 【我们一起写框架】领域驱动设计的CodeFirst框架(一)—序篇
.net core +codefirst(.net core 基础入门,适合这方面的小白阅读) 前言 .net core mvc和 .net mvc开发很相似,比如 视图-模型-控制器结构.所以. ...
- 从零3D基础入门XNA 4.0(1)——3D开发基础
[题外话] 最近要做一个3D动画演示的程序,由于比较熟悉C#语言,再加上XNA对模型的支持比较好,故选择了XNA平台.不过从网上找到很多XNA的入门文章,发现大都需要一些3D基础,而我之前并没有接触过 ...
- js语法基础入门(1)
1.基础入门 1.1.hello world 1.1.1.JavaScript是什么? JavaScript是一门跨平台.面向对象的轻量级脚本语言,在web开发中被广泛应用 1.1.2.JavaScr ...
- 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA
开发环境搭建好之后,还需要一个集成开发环境也就是IDE来进行编程.这里推荐的IDE是IDEA,那个老掉牙的Eclipse还是先放一边吧,(手动滑稽). IDEA的下载地址:http://www.jet ...
- js语法基础入门(7)
7.数组 7.1.什么是数组以及相关概念? 什么是数组?是一组数据有序排列的集合.将一组数据按一定顺序组织为一个组合,并对这个组合命名,这样便构成了数组. 什么是数组元素?组成数组的每一个数据称为数组 ...
- js语法基础入门(6)
6.函数 6.1.函数是什么? 函数就是具有名称和一定功能点代码块,这段代码块被封装起来,由一组语句组成,它们是JavaScript的基础模块单元,用于代码复用.信息隐藏和组合调用.一般来说,所谓编程 ...
随机推荐
- HTML - EMail链接
HTML - EMail链接 HTML Email 标签 在标签中,提供一个email地址,你就可以让用户发送邮件,格式是: <a href= "mailto:jack@kingyar ...
- Entity Framework Code First主外键关系映射约定
本篇随笔目录: 1.外键列名默认约定 2.一对多关系 3.一对一关系 4.多对多关系 5.一对多自反关系 6.多对多自反关系 在关系数据库中,不同表之间往往不是全部都单独存在,而是相互存在关联的.两个 ...
- (转) 学习C++ -> 向量(vector)
vector是向量类型,它是一种对象实体,具有值,所以可以看作是变量. 它可以容纳许多其他类型的相同实体,如若干个整数,所以称其为容器. vector类与一般的Array类的区别在于: 1 ...
- arcpy批量打印地图
有个处理数据的需求是把一个图层中的要素单独显示在底图上,设置固定的比例尺,并打印出图片. 考虑到后续会有重复的大量的数据要处理,决定使用arcpy处理. 首先新建一个mxd底图文档,把需要打印的地图都 ...
- thinkphp项目目录
# ThinkPHP核心文件介绍 ├─ThinkPHP.php 框架入口文件 ├─Common 框架公共文件 ├─Conf 框架配置文件 ├─Extend ...
- C# Directory类
Directory类 是一个静态类,常用的地方为创建目录和目录管理. 一下来看看它提供的操作. 1.CreateDirectory 根据指定路径创建目录.有重载,允许一次过创建多个目录. 2.Dele ...
- WPF笔记(1.4 布局)——Hello,WPF!
原文:WPF笔记(1.4 布局)--Hello,WPF! 这一节只是第2章的引子.布局要使用Panel控件,有四种Panel,如下:DockPanel,就是设置停靠位置布局模型.StackPanel, ...
- perl 爬取数据<1>
use LWP::UserAgent; use POSIX; use DBI; $user="root"; $passwd="11111111"; $dbh=& ...
- Linux系统编程(20)——信号基本概念
信号及信号来源 信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的.信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知 ...
- H.264 RTPpayload 格式------ H.264 视频 RTP 负载格式
H.264 RTPpayload 格式------ H.264 视频 RTP 负载格式 1. 网络抽象层单元类型 (NALU) NALU 头由一个字节组成, 它的语法如下: +------------ ...