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的基础模块单元,用于代码复用.信息隐藏和组合调用.一般来说,所谓编程 ...
随机推荐
- Nohttp请求图片的两种简答的方式:普通请求以及缓存请求
开局声明:这是基于nohttp1.0.4-include-source.jar版本写的教程 由于nohttp功能强悍,因此需要多种权限,仅仅一个联网的权限是不够的,如果只给了Internet的权限,去 ...
- nginx+tomcat的集群和session复制
前端服务器采用nginx,后端应用服务器采用tomcat.nginx负责负载均衡,session复制在tomcat上处理. 1.nginx安装(略) 2.nginx配置负载均衡 http { incl ...
- (转) mac 下的eclipse 配置 python 2.7
原地址: http://marsfreewill.blogspot.it/2012/08/mac-ospythonpydeveclipse.html 在MAC OS上配置Python开发环境(Py ...
- 用GDAL/OGR去读shapefile
一.读shapefile 1.首先,用Arcgis创建所要读的shp文件.打开ArcCatalog,右键NEW->Shapefile,名称Name:point ,要素类型(Feature Typ ...
- 设置secureCRT中vim的字体颜色
1.在/etc/vimrc新增以下一行 syntax on 注:上述方法对root用户无效,原因为在一般用户中,alias vi=vim,而在root用户中默认无此设置,因此若需要root用户也显示颜 ...
- 分享几个实用的jquery工具函数
1.$.browser对象属性 属性列表 说明 webkit webkit相关浏览器则返回true,否则返回false,如google,傲游. mozilla mozilla相关浏览器则返回tru ...
- full-background.js
$(window).on('load', function () { $(window).trigger('resize'); }); $(function () { var $window = $( ...
- 8051_asm.uew
/L20"8051 Assembly" AASM_LANG Line Comment = ; Nocase String Chars = ' File Extensions = S ...
- Qt中一些常用的格式转换
转自:http://blog.csdn.NET/yh_1988/article/details/7190356 用Qt经常头痛于一些格式不能通用的问题 在此记录备用 1 (20120112)QStri ...
- 从Hello, world开始认识IL <第一篇>
IL代码分析方法 Hello, world历史 .NET学习方法论 1.引言 1988年Brian W.Kernighan和Dennis M.Ritchie合著了软件史上的经典巨著<The C ...