赞
踩
Java 和 Go 语言中的字面量(literals)在概念上是相似的,都是表示固定值的符号表示形式。然而,它们在语法和支持的类型上有一些区别:
整数字面量:
int decLiteral = 123; // 十进制
int hexLiteral = 0x7B; // 十六进制
int binLiteral = 0b1111011; // 二进制(Java 7及以上)
int
, int8
, int32
, int64
, uint
, uint8
, uint32
, uint64
)。var decLiteral int = 123 // 十进制
var hexLiteral int = 0x7B // 十六进制
var binLiteral int = 0b1111011 // 二进制
var bigLiteral int64 = 0x123456789ABCDEF // 大整数
浮点数字面量:
double floatLiteral = 123.45; // 十进制
double sciLiteral = 1.23e4; // 科学计数法
float32
和 float64
。var floatLiteral float64 = 123.45 // 十进制
var sciLiteral float64 = 1.23e4 // 科学计数法
字符串字面量:
String str = "Hello, World!";
var str string = "Hello, World!" // 双引号
var rawStr string = `Hello, World!` // 反引号,包含特殊字符
布尔字面量:
true
和 false
。boolean flag = true;
true
和 false
。字符字面量:
char ch = 'A';
char unicodeChar = '\u0041';
var ch rune = 'A' // rune 是 Go 中表示 Unicode 字符的类型
var unicodeChar rune = '\u0041'
空字面量:
null
。String nullStr = null;
nil
。var nilStr *string = nil
复合字面量:
<>
来声明和初始化泛型实例。List<String> list = new ArrayList<>();
{}
来创建数组、切片、映射和结构体的复合字面量。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}
尽管两种语言在字面量的表示上有许多相似之处,但它们在类型系统、语法和一些特定字面量的使用上有所不同。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。