OC与Swift的区别二(常量、变量、运算符)
4.常量与变量声明
oc的变量声明使用 类型 变量名 = 变量值的方式,其中类型为系统内置数据类型或自定义类型,变量名需由英文字母开头且不能包含特殊字符
swift变量声明使用 var 变量名 = 变量值的方式,其中变量名可以使用任何你喜欢的字符,甚至是表情符号emoji等
oc常量声明使用const放在变量定义前即为声明常量,如:const NSString *str = @"Hello";
swift常量声明使用 let 常量名 = 常量值的方式,同样可以使用任何你喜欢的字符作为常量名
swift 可以自动推断出常量与变量的数据类型,当然也可以使用“:数据类型”的方式指定其具体数据类型,如 let age:Int = 10
PS:swift严格要求变量在使用前必须进行初始化,如上所示,必须给定变量值,而oc则不强制
5.整数
swift提供了8、16、32、64位有符号和无符号整数,如UInt8、Int64等,每一种类型都有一个min和max可调用,如UInt8.min、UInt8.max等。
6.浮点数
swift浮点数可以用十进制和十六进制2种进制来表示
十进制:let d1=12.5或let d2=0.125e2 后缀e2代表e前面部分乘以10的2次方
十六进制:let d3=0xC.8p0 0x前缀表示后面是十六进制,p0代表前面整个数字乘以2的0次方 且指数部分(px)必须存在
7.数字格式
swift中允许在数字中间加入符号_,以增加可读性,并不会影响原来数据,如 let money = 100_0000 还是表示100000
swift中还允许在数字前面加入0,以增加可读性,并不会影响原来数据,如 let money = 001_000_000还是表示1000000
而这些在oc中是不允许的
8.字符串
oc中使用@""来表示字符串
swift使用""来表示字符串,拼接字符串直接使用+将两个字符串或字符串变量进行拼接运算即可,如var str1="abc";var str2="def";var str3=str1+str2;
oc使用stringFormat方法进行字符串格式化,可以将其他非字符串值插入字符串中进行格式化
swift使用“\()”将其它非字符串插入字符串中,如:let hand=2;var age=20;let str="我今年\(age)岁了,有\(hand)只手",也可以使用String(age)进行转换,并用+进行字符串拼接,如let str="我今年"+String(age)+"岁了,有"+String(hand)+"只手"
9.数据类型转换
swift类型转换使用“数据类型(原数据)”进行类型转换,如let money1=100;let money2=50.5;let totalMoney=Double(money1)+money2;
10.运算符
oc赋值运算符返回该变量值,如 int a = 0;int b = a = 10;其实a=10返回10赋值给了b
swift赋值运算符没有返回值
oc求模运算只支持整数求模运算
swift求模运算支持浮点数求模运算,如8%2.5=0.5,因为8=2.5*3+0.5
oc中bool有两个值 YES NO 其实根本0为假,非0都代表真
swift中bool有两个值false true 且只有false和true 0与非0在任何场合都不代表bool值,比如if(10)这种写法是错的
swift 比oc中多几种运算符
10.1闭合范围运算符
a...b [a,b]包含a,b
a..<b [a,b)包含a,不包含b
如for i in 0..<5{
printfln(i)
}
10.2溢出运算符
swift为整型计算提供了5个&开头的溢出运算符
&+ 溢出加
&- 溢出减
&* 溢出乘
&/ 溢出除
&% 溢出求模
如 let x = UInt8.max //x=255
let y = x &+1 //y=0
如 let x = UInt8.min //x=0
let y = y &- 1 //y=255
OC与Swift的区别二(常量、变量、运算符)的更多相关文章
- iOS开发Swift篇—(二)变量和常量
iOS开发Swift篇—(二)变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3.9倍 ...
- Swift入门学习之一常量,变量和声明
版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com/cavalier-/p/6059421.html Swift入门学习之一常量,变量和 ...
- 速战速决 (1) - PHP: 概述, 常量, 变量, 运算符, 表达式, 控制语句
[源码下载] 速战速决 (1) - PHP: 概述, 常量, 变量, 运算符, 表达式, 控制语句 作者:webabcd 介绍速战速决 之 PHP 概述 常量 变量 运算符 表达式 控制语句 示例1. ...
- OC与Swift的区别三(条件语句)
11.swift中的switch结构 区别一: oc中switch条件只可以放整数 swift中switch条件可以放几乎任何数据类型 区别二: oc中每一个case中应有break,如果没有brea ...
- OC与Swift的区别四(条件语句)
12.条件语句的区别,此处只写区别,没有指出区别的其他方面oc与swift基本一致 12.1 oc中for if switch语句体如果只有一行代码,则{}可以省略 swift中for if swit ...
- Swift基础语法(常量变量、数据类型、元组、可选、断言)
本文来自Swift中文开发组,感谢翻译者的分享. 本文将分几部分对Swift对ios的语法做讲解.本文为第一节,主要讲解基础语法. 常量和变量 常量和变量把一个名字(比如maximumNumberOf ...
- swift 2.0 语法 常量变量
import UIKit /*: 常量变量 * 常量: let * 变量: var 完整格式: * 修饰符(let/var) 常量/变量名称: 数据类型 */ let number: Int var ...
- swift学习(二)--基本运算符、字符串、集合操作
在这一篇博客里面,我想要介绍一下swift里面一些常用的基本运算符,还有涉及到的字符串,集合操作.你会发现在swift里面还是有许多其他语言所不具有的特性运算操作的. 首先最基本的+,-,*,/,&g ...
- OC与Swift的区别五(函数)
13 函数 oc函数定义: 返回值类型 函数名(参数类型 参数名,参数类型 参数名){ } swift 函数定义: func 函数名(参数名:参数类型,参数名:参数类型) -> 返回值类型{ } ...
随机推荐
- bzoj 2281 [Sdoi2011]黑白棋(博弈+组合计数)
黑白棋(game) [问题描述] 小A和小B又想到了一个新的游戏. 这个游戏是在一个1*n的棋盘上进行的,棋盘上有k个棋子,一半是黑色,一半是白色. 最左边是白色棋子,最右边是黑色棋子,相邻的棋子颜色 ...
- 潜语义分析(Latent Semantic Analysis)
LSI(Latent semantic indexing, 潜语义索引)和LSA(Latent semantic analysis,潜语义分析)这两个名字其实是一回事.我们这里称为LSA. LSA源自 ...
- string,vector和array(C++ Primer读书笔记)
string string是标准库类型,使用时需要包涵头文件,使用using声明. include <string> using std::string; 1.定义和初始化 string ...
- nyoj 540 奇怪的排序
奇怪的排序 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 最近,Dr. Kong 新设计一个机器人Bill.这台机器人很聪明,会做许多事情.惟独对自然数的理解与人类 ...
- 引入less报错解决方法以及浏览器设计不同的地方
XMLHttpRequest cannot load file:///C:/Users/PAXST/Desktop/805/first.less. Cross origin requests are ...
- 2016/9/7 jdbc.properties配置数据库相关
##MySQL#jdbc.driver=com.mysql.jdbc.Driver#jdbc.url=jdbc:mysql://localhost:3306/test#jdbc.username=ro ...
- BAPI
MM模块 1. BAPI_MATERIAL_SAVEDATA 创建物料主数据 注意参数EXTENSIONIN的使用,可以创建自定义字段 例如:WA_BAPI_TE_MARA-MATERIAL = IT ...
- Oracle数据库编程:PL/SQL编程基础
2.PL/SQL编程基础: PL/SQL块: declare 定义部分 begin 执行部分 exception 异 ...
- xcode6 自定义UITabbarController
-(void)initTabBarView{ if (tabBarController && [kAPPDELEGATE.navigationController.viewContro ...
- 六款值得推荐的android(安卓)开源框架简介【转】
http://my.oschina.net/u/1244156/blog/380647 1.volley 项目地址 https://github.com/smanikandan14/Volley-de ...