走进 Go 语言基础语法 | 青训营 (1)

Powered by:NEFU AB-IN

文章目录

  • 走进 Go 语言基础语法 | 青训营 (1)
    • 代码注释
    • 代码模板

走进 Go 语言基础语法 | 青训营 (1)

  • 代码注释

    /*
     * @Author: NEFU AB-IN
     * @Date: 2023-08-06 09:44:15
     * @FilePath: \GoTest\a.go
     * @LastEditTime: 2023-08-06 11:00:45
     */
    package main
    
    import (
    	"bufio"
    	"fmt"
    	"os"
    	"strconv"
    )
    
    var (
    	in  = bufio.NewReader(os.Stdin)
    	out = bufio.NewWriter(os.Stdout)
    )
    
    func Read[T any]() T {
    	var i T
    	fmt.Fscan(in, &i)
    	return i
    }
    
    const N int = 1e5 + 10
    
    // 函数
    func add(a int, b int) (v int, ok bool) {
    	return a + b, ok
    }
    
    func add2(a *int) {
    	*a += 2
    }
    
    // 结构体
    type sa struct {
    	x int
    	y int
    }
    
    // 结构体方法(类成员函数)
    func (a sa) add(x int) bool {
    	return a.x == 2
    }
    
    func main() {
    	defer out.Flush()
    
    	// 1. variable
    	a := "123"
    	var b int = 2
    	var c int64
    	/*
    		int   类型大小为 8 字节
    		int8  类型大小为 1 字节
    		int16 类型大小为 2 字节
    		int32 类型大小为 4 字节
    		int64 类型大小为 8 字节
    	*/
    	var d float64
    
    	e := a + "foo"
    
    	const s = "1231"
    
    	fmt.Println(a, b, c, d) // 带换行
    	fmt.Print(s)            // 不带换行
    	fmt.Println(e)
    
    	// 2. if else
    
    	f := Read[int]()
    	if f%2 == 0 {
    		print("even")
    	} else {
    		print("odd")
    	}
    
    	// 3. 循环
    	for i := 0; i < 10; i++ {
    		fmt.Print("!")
    	}
    
    	// 4. 数组 两种声明方式
    	var g [N]int
    	var h = [N]int{}
    	fmt.Println(g, h)
    
    	// 5. slice 切片
    	j := make([]string, 3)
    	j = append(j, "cc")
    	fmt.Println(j[2:5])
    
    	// 6. map
    	mp := map[string]int{}
    	mp["xw"] = 100
    	mp["lsy"] = 12
    	l, ok := mp["xw"]
    	fmt.Println(l, ok)
    
    	delete(mp, "xw")
    	for key, val := range mp {
    		fmt.Println(key, val)
    	}
    
    	// 7. 给构体
    	m := sa{x: 10}
    	fmt.Println(m)
    
    	// 8. 格式化
    	fmt.Printf("f=%v\n", f)
    	fmt.Printf("f=%+v\n", m)
    	fmt.Printf("f=%#v\n", m)
    
    	// 9. 转换
    	y := 10
    	z := "123"
    
    	fmt.Println(strconv.Atoi(z))
    	fmt.Println(strconv.Itoa(y))
    
    }
    
    
    • 代码模板

    package main
    
    import (
      "bufio"
      "fmt"
      "os"
    )
    
    var (
      in  = bufio.NewReader(os.Stdin)
      out = bufio.NewWriter(os.Stdout)
    )
    
    func Read[T any]() T {
      var i T
      fmt.Fscan(in, &i)
      return i
    }
    
    const N int = 1e5 + 10
    
    func solve() {
    
    }
    
    func main() {
      defer out.Flush()
      T := Read[int]()
      for T > 0 {
        solve()
        T--
      }
    }
    

你可能感兴趣的:(Go,BackEnd,golang,开发语言,后端)