swift语法和java的比较
Posted 自相矛盾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift语法和java的比较相关的知识,希望对你有一定的参考价值。
1. 定义常量和变量
a. Swift语法
常量:
let MaxNumber = 10
变量:
var name = 1
b. Java语法
常量:
public final int MaxNumber= 10;
变量:
public String name = "morden";
这里要注意的是swift有类型标注(type annotation)这个语法:如果要添加类型标注,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。但是因为swift编译器可以进行类型安全判定,所以一般为了代码简练,
可以不加类型标注,关于类型标注,后面会有提到。加类型标注的语法如下:
常量:
let MaxNumber :Int = 10
变量:
var name : String = "morden"
常量与变量名不能包含数学符号,箭头,保留的(或者非法的)Unicode 码位,连线与制表符。也不能以数字开头,但是可以在常量与变量名的其他地方包含数字。
2. Swift和Java的输出语法
Swift:
print("hello world")
Java
System.out.println("hello world");
3. 注释
Swift和Java注释大体相同,都可以单行注释和多行注释。唯一不同点就是Swift支持多行注释可以嵌套在其它的多行注释中。
/* 这是第一个多行注释的开头 /* 这是第二个被嵌套的多行注释 */ 这是第一个多行注释的结尾 */
4. 分号
Java要求每一行代码都有分号,而Swift不同,不要求每一行必须有分号,但是一种情况除外:当在同一行内写多条独立的语句时候,每个语句需要分号隔开
let apple : String = "apple" ; print("hello world");
5. 类型标注
类型标注:在Swift中,每次声明常量和变量的时候,不是一定要显式指定类型。如果你没有显式指定类型,Swift 会使用类型推断(type inference)来选择合适的类型。有了类型推断,编译器可以在编译代码的时候自动推断出表达式的类型。Swift 和Java都是一个类型安全(type safe)的语言。如果你申明的变量是String类型的时候,再对其进行赋值时候,传了int类型,编译器会报错。但是在语法上,这两个语言有所不同。
Java一般申明变量时候,会将类型放在前面,如下代码:
String name = "morden";
Swift会将类型放在后面,如下代码:
var name : String = "morden"
而有时候,我们申明变量时候,不加类型,编译器就会自己推断变量类型,这就是类型标注
在Swift中,具体类型标注代码如下:
let number = 42
number会被推测为 Int 类型
let anotherNumber = 3 + 0.14159
原始值 anotherNumber 没有显式声明类型,而表达式中出现了一个浮点字面量,所以表达式会被推断为Double
类型。
6. 数值型字面量
Swift和Java在数值型字面量方面有很多异同,只有十进制和16进制表示是相同的。
Swift:
- 一个十进制数,没有前缀
- 一个二进制数,前缀是
0b
- 一个八进制数,前缀是
0o
- 一个十六进制数,前缀是
0x
Java:
- 一个十进制数,没有前缀
- 一个二进制数,Java没有二进制的表示方式,一般都16进制表示
- 一个八进制数,前缀是
0
- 一个十六进制数,前缀是
0x
另外,Swift数值类字面量可以包括额外的格式来增强可读性。整数和浮点数都可以添加额外的零并且包含下划线,并不会影响字面量:
let paddedDouble = 000123.456 let oneMillion = 1_000_000 let justOverOneMillion = 1_000_000.000_000_1
参考链接:
http://special.csdncms.csdn.net/the-swift-programming-language-in-chinese/Introduction/template/chapter2/01_The_Basics.html
以上是关于swift语法和java的比较的主要内容,如果未能解决你的问题,请参考以下文章