Java 和 Go 语言中的字面量(literals)在概念上是相似的,都是表示固定值的符号表示形式。然而,它们在语法和支持的类型上有一些区别:
- 整数字面量:- Java: 整数字面量可以是十进制、十六进制或二进制。Java 7 引入了二进制字面量表示法。
int decLiteral =123;// 十进制int hexLiteral =0x7B;// 十六进制int binLiteral =0b1111011;// 二进制(Java 7及以上)- Go: 整数字面量同样可以是十进制、十六进制或二进制。Go 语言也支持指定整数的大小(如int,int8,int32,int64,uint,uint8,uint32,uint64)。var decLiteral int=123// 十进制var hexLiteral int=0x7B// 十六进制var binLiteral int=0b1111011// 二进制var bigLiteral int64=0x123456789ABCDEF// 大整数 - 浮点数字面量:- Java: 浮点数字面量通常带有小数点,可以是十进制或科学计数法。
double floatLiteral =123.45;// 十进制double sciLiteral =1.23e4;// 科学计数法- Go: 浮点数字面量同样可以是十进制或科学计数法,并且 Go 语言区分float32和float64。var floatLiteral float64=123.45// 十进制var sciLiteral float64=1.23e4// 科学计数法 - 字符串字面量:- Java: 字符串字面量用双引号表示。
String str ="Hello, World!";- Go: 字符串字面量可以用双引号或反引号(表示原始字符串)。var str string="Hello, World!"// 双引号var rawStr string=`Hello, World!`// 反引号,包含特殊字符 - 布尔字面量:- Java: 布尔字面量是
true和false。boolean flag =true;- Go: 布尔字面量同样是true和false。 - 字符字面量:- Java: 字符字面量用单引号表示,可以是 ASCII 字符或 Unicode 字符。
char ch ='A';char unicodeChar ='\u0041';- Go: 字符字面量也用单引号表示,可以是 ASCII 或 Unicode。var ch rune='A'// rune 是 Go 中表示 Unicode 字符的类型var unicodeChar rune='\u0041' - 空字面量:- Java: 空字面量是
null。String nullStr =null;- Go: 空字面量是nil。var nilStr *string=nil - 复合字面量:- Java: 从 Java 9 开始,支持使用菱形符号
<>来声明和初始化泛型实例。List<String> list =newArrayList<>();- Go: 支持使用花括号{}来创建数组、切片、映射和结构体的复合字面量。var arr [3]int=[3]int{1,2,3}var slice []int=[]int{1,2,3}var mapVal map[string]int=map[string]int{"one":1,"two":2}var structVal struct{Name string; Age int}=struct{Name:"Alice", Age:30}
尽管两种语言在字面量的表示上有许多相似之处,但它们在类型系统、语法和一些特定字面量的使用上有所不同。
本文转载自: https://blog.csdn.net/weixin_41020960/article/details/140841547
版权归原作者 王伯爵 所有, 如有侵权,请联系我们删除。
版权归原作者 王伯爵 所有, 如有侵权,请联系我们删除。