golang 括号用法总结
2023-02-18 16:39:39 时间
圆括号
1. 函数/方法
中的 传参
与 返回值
func add(x,y int) (int,error){
return x+y, nil
}
2.结构体
中的方法 接收者
type Person struct {
Name string
}
func (p *Person) String() string{
return p.Name
}
3. 四则运算优先级
i:=1*(2+3)
4. 显示类型转换
a:=int(100)
d:=time.Duration(1 * time.Second)
5. 类型断言
func output(x interface{}) {
v, ok := x.(string)
if ok {
print(v)
}
}
6. 复杂对象的边界
type User struct{}
func (u *User) Show() {
fmt.Println("hello. buddy")
}
func main() {
(&User{}).Show() // 这里
}
7. var / const / import
组
import (
"fmt"
"time"
)
var (
a = 1
b = 2
)
const (
c = 3
d = 4
)
花括号/大括号
一句话归纳,就是作用于
1. 数据集合
map
, slice
, array
func main() {
parts := []int{1, 2, 3}
arr := [3]int{1, 2, 3}
m := map[string]string{"a": "b", "c": "d"}
}
2. 关键字作用域
- 控制逻辑
if / else
for
select
switch
- 类型定义
struct
interface
- 函数体
func
func main(){
for {
// statment
switch i{
case 1:
// statement
default:
// statement
}
}
}
3. 匿名代码块 / 独立作用域
fun main(){
i:=3
{
i:=3
// statement
}
}
方括号
1. map
的类型
m := map[string]string{"a": "b", "c": "d"}
2. 数组的长度
arr1 := [3]int{1, 2, 3}
arr2 := [...]int{1, 2, 3, 4, 5}
3. 切片定义
nums := []int{1, 2, 3}
4. 元素索引
a := m["a"]
n1 := arr2[0]
n2 := nums[1]
5. 泛型类型 go1.17 及以后
- 函数定义, 定义传参泛型类型 :
add[T Addable](a,b T)
- 函数调用, 指定传参特定类型:
add[int]("a","b")
package main
import "fmt"
func main() {
add(1,2)
add("a","b")
// add[int]("a","b") // 错误, 强制约束了传入为 int 类型
}
type Addable interface {
type int,string
}
func add[T Addable](a,b T) {
fmt.Println(a+b)
}
相关文章
- 【完全开源】知乎日报UWP版(下篇):商店APP、github源码、功能说明。Windows APP 良心出品。
- The Similarities and Differences Between C# and Java -- Part 1(译)
- Django Admin实现三级联动(省市区)
- Linux运维工程师工作手册
- Linux系统初始化
- Linux三剑客之awk命令详解及相关实例
- linux的rsync工具的常用选项及ssh同步介绍
- Linux运维常用shell脚本实例
- Django初识、应用创建、模板与静态文件配置、数据库连接
- Django之ForeignKey和ManyToManyField多表查询
- Django权限系统auth模块详解
- Django之QuerySet详解
- Django之Model操作数据库详解
- Django的Modelform组件
- Django快捷函数
- Django之Model的Meta选项详解
- Django之Template介绍及日常应用
- Django的请求生命周期
- Django转义总结:escape、autoescape、safe、mark_safe
- Django的中间件之一