ToB企服应用市场:ToB评测及商务社交产业平台

标题: Go语言--快速入门 [打印本页]

作者: 星球的眼睛    时间: 2024-10-14 16:01
标题: Go语言--快速入门
Go语言特点

我们先看一下简单的Go语言步伐
  1. package main
  2. import "fmt"
  3. func main()  
  4. {  // 错误,{ 不能在单独的行上
  5.     fmt.Println("Hello, World!")
  6. }
复制代码
我们可以看到外型非常像我们的JAVA,但是不必要;作为结尾,也就是我们利用行分隔符。
之后的特点就是声明变量的方式,我们利用了关键字var,
  1. package main
  2. import "fmt"
  3. func main() {
  4.     var a string = "Runoob"
  5.     fmt.Println(a)
  6.        
  7.     var b, c int = 1, 2
  8.     fmt.Println(b, c)
  9.     var d float64
  10.     //声明了stringVal这个变量
  11.     stringVal:="s"
  12.     var x,y bool=true,true
  13. }
复制代码
  1. package main
  2. import "fmt"
  3. func main() {
  4.    const LENGTH int = 10
  5.    const WIDTH int = 5   
  6.    var area int
  7.    const a, b, c = 1, false, "str" //多重赋值
  8.    const x string="huihui"
  9.    area = LENGTH * WIDTH
  10.    fmt.Printf("面积为 : %d", area)
  11.    println()
  12.    println(a, b, c)   
  13. }
复制代码
我们的语言常量的关键字是const,用法和var一样。
  1. package main
  2. import "fmt"
  3. func main() {
  4.    var a int = 4
  5.    var ptr *int=nil
  6.    /*  & 和 * 运算符实例 */
  7.    ptr = &a     /* 'ptr' 包含了 'a' 变量的地址 */
  8.    fmt.Printf("a 的值为  %d\n", a);
  9.    fmt.Printf("*ptr 为 %d\n", *ptr);
  10. }
复制代码
这里指针的用法和我们的C语言划一,差别是指针的空值用nil表示。
  1. /* 函数返回两个数的最大值 */
  2. func max(num1, num2 int) (int,int) {
  3.    /* 声明局部变量 */
  4.    var result int
  5.    if (num1 > num2) {
  6.       result = num1
  7.    } else {
  8.       result = num2
  9.    }
  10.    return result ,result
  11. }
复制代码
我们的函数定义关键字是func,但是差别的是我们的函数返回值类型是放在背面的。同时GO语言还可以同时返回多个参数。
  1. package main
  2. import "fmt"
  3. func main() {
  4.    var n [10]int /* n 是一个长度为 10 的数组 ,定义数组*/
  5.    /* 定义不定长数组*/
  6.    balance :=[...]float32{1.2,32.3,23.4}
  7.    /* 输出每个数组元素的值 ,可以用索引来读取*/
  8.    for j = 0; j < 10; j++ {
  9.       fmt.Printf("Element[%d] = %d\n", j, n[j] )
  10.    }
  11. }
复制代码
GO语言定义数组的方式是将[]type放在我们的标识符背面,假如是不定长的数组,我们利用[…]来定义。
  1. package main
  2. import "fmt"
  3. func main() {
  4.    var a int= 20   /* 声明实际变量 */
  5.    var ip *int        /* 声明指针变量 */
  6.    ip = &a  /* 指针变量的存储地址 */
  7.         var b *int=nil
  8.    fmt.Printf("a 变量的地址是: %x\n", &a  )
  9.    /* 指针变量的存储地址 */
  10.    fmt.Printf("ip 变量储存的指针地址: %x\n", ip )
  11.    /* 使用指针访问值 */
  12.    fmt.Printf("*ip 变量的值: %d\n", *ip )
  13. }
复制代码
和C语言一样我们利用*来声明指针变量,用&获得变量的地址。
  1. package main
  2. import "fmt"
  3. func main() {
  4.    var numbers = make([]int,3,5)
  5.         var numbers1 []string={"333","ddfff","ddffccc"}
  6.    printSlice(numbers)
  7. }
  8. func printSlice(x []int){
  9.    fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x)
  10. }
复制代码
GO语言切片就是没有固定长度的可变数组,所以定义时就是不加数字,还可以利用make来进行定义。
  1. package main
  2. import "fmt"
  3. // 声明一个包含 2 的幂次方的切片
  4. var pow = []int{1, 2, 4, 8, 16, 32, 64, 128}
  5. //定义cahnnel,元素有两个整型
  6. ch:=make(chan int,2)
  7. func main() {
  8. //接受两个整型元素
  9.         ch->1
  10.         ch->2
  11.         //遍历ch中的value值
  12.         for value :=ch{
  13.          fmt.Printf(value)
  14.         }
  15.    // 遍历 pow 切片,i 是索引,v 是值
  16.    for i, v := range pow {
  17.       // 打印 2 的 i 次方等于 v
  18.       fmt.Printf("2**%d = %d\n", i, v)
  19.    }
  20.    //只遍历Key
  21.    for _,v:= range pow{
  22.    fmt.Printf(v)
  23.    }
  24. }
复制代码
Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4