Go 语言入门指南:基础语法和常用特性解析

85 阅读2分钟

Go开发注意事项

1、Go源文件以“go”为扩展名

2、应用程序执行入口是main()方法

3、区分大小写

4、每个语句不需要加分号

5、不能多条语句写在同一行

  1. 基础语法-变量
  • 字符串 g :=a+"fog"
  • 声明变量1:自动推导变量类型var a="initial"或者var b,c int =1,2
  • 声明变量2:f:=float32(e)
  • 常量:根据上下文自动确定类型,const x = xxx eg.const s string ="constant"
  1. 基础语法-if else 与c++类似,区别if后面无括号,大括号后换一行
if 7%2 ==0{
    fmt.Println("7 is even")
}else{
    fmt.println("7 is odd")
  }

3.基础语法-循环 只有for循环

pakage main
import "fmt"
func main(){
    i:=1
    for{
    fmt.Println("loop")
    break
    }
    
    for j:=7;j<9;j++{
        fmt.Println(j)
        }
    for n:=0;n<5;n++{
        if n%2 ==0{
        continue
        }
        fmt.Println(n)
    }
    for i<=3{
        fmt.Println(i)
        i=i+1
        }

}

4.基础语法-switch

switch变量名后面不需要括号,与c++的最大区别是不需要自己添加break,默认有break。当达到条件自动跳出switch,执行下一行代码。

a:=2
switch a{
case 1:
    fmt.Println("one")
case 2:
    fmt.Println("two")
default:
    fmt.Println("other")
   }

switch功能更加强大,可以使用任意变量(字符串,结构体),甚至可以取代if else(switch后面不加变量,case后面加条件)

a:=1
switch{
case a>2:
    fmt.Println("a大于2")
default:
    fmt.Println("a小于2")
   }

5.基础语法-数组 与c++相似

var a [5]int//建立数组
a[4]=100//向数组存数据
fmt.Pritln(a[4],len(a))//读取数组数据

6.基础语法-切片(重点)

  • make创建,append堆栈(必须赋值回去原数组)
  • copy复制
  • 有与python相同的切片操作

微信图片_20230725231919.jpg

7.基础语法-map

ok验证map里面是否有key存在

map完全无序,偏随机输出

image.png 7.基础语法-range

对于数组,map用range快速遍历,使代码更简洁

返回两个值,第一个值索引(不需要索引用下划线去复位),第二个值是对应位置的值

8.基础语法-函数

函数返回多个值

Go 函数可以返回多个值,例如:

package main

import "fmt"

func swap(x, y string) (string, string) {
   return y, x
}

func main() {
   a, b := swap("Google", "Runoob")
   fmt.Println(a, b)
}

9.基础语法-指针

主要用途:对存入的参数进行修改


import "fmt"

func main() {
   var a int= 20   /* 声明实际变量 */
   var ip *int        /* 声明指针变量 */

   ip = &a  /* 指针变量的存储地址 */

   fmt.Printf("a 变量的地址是: %x\n", &a  )

   /* 指针变量的存储地址 */
   fmt.Printf("ip 变量储存的指针地址: %x\n", ip )

   /* 使用指针访问值 */
   fmt.Printf("*ip 变量的值: %d\n", *ip )
}

10.基础语法-结构体


import "fmt"

type Books struct {
   title string
   author string
   subject string
   book_id int
}


func main() {

    // 创建一个新的结构体
    fmt.Println(Books{"Go 语言", "www.runoob.com", "Go 语言教程", 6495407})

    // 也可以使用 key => value 格式
    fmt.Println(Books{title: "Go 语言", author: "www.runoob.com", subject: "Go 语言教程", book_id: 6495407})

    // 忽略的字段为 0 或 空
   fmt.Println(Books{title: "Go 语言", author: "www.runoob.com"})
}

未完待续