当前位置:网站首页>go array
go array
2022-04-23 20:39:00 【baboon_ chen】
go array characteristic
1、 Arrays are value types , Assigning and passing copies the entire array ,⽽ It's not a pointer .
func printArray(x [2]int) {
fmt.Printf("the array x address is:%p\n", &x)
x[1] = 1000
}
func test1() {
var a [2]int = [2]int {
1}
fmt.Printf("the array a address is:%p\n", &a)
fmt.Printf("the value of a:%v\n", a)
printArray(a)
}
Output :
the array a address is:0xc0000a2070
the value of a:[1 0]
the array x address is:0xc0000a20a0
Value copy ⻉⾏ This will cause performance problems , It is usually suggested that ⽤ slice, Or array pointer .
2、 Array ⻓ Degree must be constant , And it's part of the type .[2]int and [3]int It's different types .
If the type is the same , Array ⽀ a “==”、"!=" The operator , Used to determine whether the values of the array are the same .
func test2() {
a := [2]int {
1,2}
b := [2]int {
1,2}
// error:non-constant array bound length
// var length int = 3
// c := [length]int {}
c := [3]int {
}
fmt.Printf("the type of a: %T, the value: %v\n", a, a)
fmt.Printf("the type of b: %T, the value: %v\n", b, b)
fmt.Printf("the type of c: %T, the value: %v\n", c, c)
if a == b {
fmt.Printf("a == b\n")
fmt.Printf("the address of a: %p\n", &a)
fmt.Printf("the address of b: %p\n", &b)
}
// error: invalid operation: a != c (mismatched types [2]int and [3]int)
// if a != c {
// fmt.Printf("a != c\n")
// fmt.Printf("the address of a: %p\n", &a)
// fmt.Printf("the address of c: %p\n", &c)
// }
}
Output :
he type of a: [2]int, the value: [1 2]
the type of b: [2]int, the value: [1 2]
the type of c: [3]int, the value: [0 0 0]
a == b
the address of a: 0xc000012090
the address of b: 0xc0000120a0
3、 Pointer array [n]*T, Array pointer *[n]T.
4、 Initialization of an array
func test3() {
a := [3]int {
1,2} // Uninitialized element value is 0.
b := [...]int {
1,2,3,4} // The array is determined by the initialization value ⻓ degree .
c := [5]int {
2:10, 4:100} // send ⽤ The index number initializes the element .
d := [...]int {
3:100, 5:100} // The index can be used to determine the length of the array
e := [...]struct {
name string
age int
} {
{
"chen",25}, // Element types can be omitted .
{
"yang",25}, // Don't forget the last ⼀⾏ Comma of .
}
fmt.Printf("the type of a: %T, the value: %v\n", a, a)
fmt.Printf("the type of b: %T, the value: %v\n", b, b)
fmt.Printf("the type of c: %T, the value: %v\n", c, c)
fmt.Printf("the type of d: %T, the value: %v\n", d, d)
fmt.Printf("the type of e: %T, the value: %v\n", e, e)
}
Output :
the type of a: [3]int, the value: [1 2 0]
the type of b: [4]int, the value: [1 2 3 4]
the type of c: [5]int, the value: [0 0 10 0 100]
the type of d: [6]int, the value: [0 0 0 100 0 100]
the type of e: [2]struct {
name string; age int }, the value: [{
chen 25} {
yang 25}]
5、 Multidimensional arrays , First determine the number of columns , Then determine the number of rows .
func test4() {
a := [2][3]int {
{
1,1,1}, {
2,2,2}}
b := [...][2]int {
// The first 2 Latitude cannot ⽤ "...".
{
1,1},
{
2,2},
{
3,3},
}
fmt.Printf("the type of a: %T, the value: %v\n", a, a)
fmt.Printf("the type of b: %T, the value: %v\n", b, b)
}
Output :
the type of a: [2][3]int, the value: [[1 1 1] [2 2 2]]
the type of b: [3][2]int, the value: [[1 1] [2 2] [3 3]]
6、 The length of the array .
func test5() {
a := [2]int {
}
fmt.Println("the len of a: ", len(a)," the cap of a: ", cap(a))
}
Output :
the len of a: 2 the cap of a: 2
Built in functions len and cap Can return an array ⻓ degree ( Element quantity ).
版权声明
本文为[baboon_ chen]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204210546351471.html
边栏推荐
- Leetcode 709, convert to lowercase
- 【PTA】整除光棍
- How do BIM swindlers cheat? (turn)
- Common form verification
- Go language development Daily Fresh Project Day 3 Case - Press Release System II
- Leetcode 1346. Check whether integers and their multiples exist
- RT-1052学习笔记 - GPIO架构分析
- ArcGIS js api 4. X submergence analysis and water submergence analysis
- Create vs project with MATLAB
- Es error: request contains unrecognized parameter [ignore_throttled]
猜你喜欢

Come in and teach you how to solve the problem of port occupation

vulnhub DC:1渗透笔记

Numpy Index & slice & iteration

Unity animation creates sequence frame code and generates animationclip

Install MySQL 5.0 under Linux 64bit 6 - the root password cannot be modified
![[latex] 5 how to quickly write out the latex formula corresponding to the formula](/img/1f/3c5a332ce1d6852dde38040faea5bf.png)
[latex] 5 how to quickly write out the latex formula corresponding to the formula
![[PTA] l1-002 printing hourglass](/img/9e/dc715f7debf7edb7a40e9ecfa69cef.png)
[PTA] l1-002 printing hourglass

The construction and use of Fortress machine and springboard machine jumpserver are detailed in pictures and texts

The ODB model calculates the data and outputs it to excel

Flex layout
随机推荐
Unity Odin ProgressBar add value column
LeetCode 1337、矩阵中战斗力最弱的 K 行
Research on open source OCR engine
Introduction to intrusion detection data set
SQL gets the latest record of the data table
[PTA] l1-006 continuity factor
Go限制深度遍历目录下文件
BMP JPEG picture to vector image contourtrace
Leetcode 542, 01 matrix
vulnhub DC:1渗透笔记
內網滲透之DOS命令
SQL: query duplicate data and delete duplicate data
Latest investigation and progress of building intelligence based on sati
LeetCode 709、转换成小写字母
The ODB model calculates the data and outputs it to excel
What is the difference between a host and a server?
Customize timeline component styles
Leetcode 1346. Check whether integers and their multiples exist
Leetcode 20. Valid parentheses
Scripy tutorial - (2) write a simple crawler