0
点赞
收藏
分享

微信扫一扫

GO+ 语言基础-字面量简单解析



GO+ 语言基础-字面量简单解析

  • ​​一、前言​​
  • ​​二、字面量类型​​
  • ​​1.整型字面量​​
  • ​​2.实型字面量​​
  • ​​3.字符字面量​​
  • ​​4.逻辑字面量​​
  • ​​5.字符串字面量​​
  • ​​6.复数类型字面量​​


官方线上GO+练习环境:​​https://play.goplus.org/​​

一、前言

在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)。几乎所有计算机编程语言都具有对基本值的字面量表示,诸如:整数、浮点数以及字符串;而有很多也对布尔类型和字符类型的值也支持字面量表示;还有一些甚至对枚举类型的元素以及像数组、记录和对象等复合类型的值也支持字面量表示法。

二、字面量类型

1.整型字面量

使用特定的字符序列表示具体的整型数值。如:

var num int
num =1
println(num)

GO+ 语言基础-字面量简单解析_字面量

2.实型字面量

实型字面量型字面量使用特定字符序列来表示一个浮点数值。如:

var num float32
num =1.12
println(num)

GO+ 语言基础-字面量简单解析_整型_02

3.字符字面量

采用UTF-8的编码方式,占用1~4个字节。如:

var num byte
num = 'a'
println(num)

GO+ 语言基础-字面量简单解析_整型_03

4.逻辑字面量

逻辑字面量只有两个值 true和false。如:

var num bool
num = true
println(num)

GO+ 语言基础-字面量简单解析_字符串_04

5.字符串字面量

字符串字面量(stringliteral)是指双引号引住的一系列字符,双引号中可以没有字符,可以只有一个字符,也可以有很多个字符。如:

var num string
num = "a"
num = `a`
println(num)

GO+ 语言基础-字面量简单解析_GO+ 学习_05

6.复数类型字面量

Go+语言中有多种复合数据,如:数组、切片、map、结构体,等;我把这些类型的字面量写法抽象为了一个语法,即:类型{成员列表},和其他字面量本无本质区别。

(1)数组

a := [x*x for x <- [1, 3, 5, 7, 11]]
b := [x*x for x <- [1, 3, 5, 7, 11], x > 3]
c := [i+v for i, v <- [1, 3, 5, 7, 11], i%2 == 1]
d := [k+","+s for k, s <- {"Hello": "xsw", "Hi": "Go+"}]

arr := [1, 2, 3, 4, 5, 6]
e := [[a, b] for a <- arr, a < b for b <- arr, b > 2]

x := {x: i for i, x <- [1, 3, 5, 7, 11]}
y := {x: i for i, x <- [1, 3, 5, 7, 11], i%2 == 1}
z := {v: k for k, v <- {1: "Hello", 3: "Hi", 5: "xsw", 7: "Go+"}, k > 3}

(2)切片

x := [1, 3.4] // []float64
y := [1] // []int
z := [1+2i, "xsw"] // []interface{}
a := [1, 3.4, 3+4i] // []complex128
b := [5+6i] // []complex128
c := ["xsw", 3] // []interface{}
empty := [] // []interface{}

(3)map

x := {"Hello": 1, "xsw": 3.4} // map[string]float64
y := {"Hello": 1, "xsw": "Go+"} // map[string]interface{}
z := {"Hello": 1, "xsw": 3} // map[string]int
empty := {} // map[string]interface{}

(4)结构体

type Config struct {
Dir string
Level int
}

func foo(conf *Config) {
// ...
}

foo({Dir: "/foo/bar", Level: 1})

在线练习环境 ​​点这里​​:https://play.goplus.org/



举报

相关推荐

0 条评论