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

Powered by:NEFU AB-IN

文章目录

  • [走进 Go 语言基础语法 | 青训营 (1)](#走进 Go 语言基础语法 | 青训营 (1))

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

代码注释

go 复制代码
/*
 * @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))

}
复制代码
## 代码模板
go 复制代码
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--
  }
}
复制代码
相关推荐
tang777899 小时前
爬虫如何绕过绕过“5秒盾”Cloudflare:从浏览器指纹模拟到Rust求解之不完全指南
开发语言·爬虫·rust·cloudflare
Yuer20259 小时前
什么是 Rust 语境下的“量化算子”——一个工程对象的最小定义
开发语言·后端·rust·edca os·可控ai
hqwest10 小时前
码上通QT实战26--系统设置01-系统设置布局
开发语言·qt·qss·qt基础控件·qt布局控件·qt表格控件
薛定谔的猫198210 小时前
llama-index Embedding 落地到 RAG 系统
开发语言·人工智能·python·llama-index
短剑重铸之日10 小时前
《7天学会Redis》Day 5 - Redis Cluster集群架构
数据库·redis·后端·缓存·架构·cluster
计算机程序设计小李同学10 小时前
基于SSM框架的动画制作及分享网站设计
java·前端·后端·学习·ssm
jghhh0110 小时前
传递对准MATLAB仿真程序
开发语言·matlab
+VX:Fegn089511 小时前
计算机毕业设计|基于springboot + vue小型房屋租赁系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
Victor35611 小时前
Hibernate(43)Hibernate中的级联删除如何实现?
后端
Victor35611 小时前
Hibernate(44)Hibernate中的fetch join是什么?
后端