前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >golang 括号用法总结

golang 括号用法总结

作者头像
老麦
发布2022-12-24 09:43:39
6040
发布2022-12-24 09:43:39
举报
文章被收录于专栏:Go与云原生Go与云原生

圆括号

1. 函数/方法 中的 传参返回值

代码语言:javascript
复制
func add(x,y int) (int,error){
  return x+y, nil
}

2.结构体 中的方法 接收者

代码语言:javascript
复制
type Person struct {
  Name string
}

func (p *Person) String() string{
  return p.Name
}

3. 四则运算优先级

代码语言:javascript
复制
i:=1*(2+3)

4. 显示类型转换

代码语言:javascript
复制
a:=int(100)

d:=time.Duration(1 * time.Second)

5. 类型断言

代码语言:javascript
复制
func output(x interface{}) {
	v, ok := x.(string)
	if ok {
		print(v)
	}
}

6. 复杂对象的边界

代码语言:javascript
复制
type User struct{}

func (u *User) Show() {
	fmt.Println("hello. buddy")
}

func main() {
	(&User{}).Show()  // 这里
}

7. var / const / import

代码语言:javascript
复制
import (
	"fmt"
	"time"
)

var (
	a = 1
	b = 2
)

const (
	c = 3
	d = 4
)

花括号/大括号

一句话归纳,就是作用于

1. 数据集合

map, slice, array

代码语言:javascript
复制
func main() {

	parts := []int{1, 2, 3}
	arr := [3]int{1, 2, 3}
	m := map[string]string{"a": "b", "c": "d"}

}

2. 关键字作用域

  1. 控制逻辑
    • if / else
    • for
    • select
    • switch
  2. 类型定义
    • struct
    • interface
  3. 函数体
    • func
代码语言:javascript
复制
func main(){
	for {
		// statment
    switch i{
    case 1:
      // statement
    default:
     	// statement
    }
	}
}

3. 匿名代码块 / 独立作用域

代码语言:javascript
复制
fun main(){
  i:=3
  {
    i:=3
    // statement
  }
}

方括号

1. map 的类型

代码语言:javascript
复制
	m := map[string]string{"a": "b", "c": "d"}

2. 数组的长度

代码语言:javascript
复制
	arr1 := [3]int{1, 2, 3}
	arr2 := [...]int{1, 2, 3, 4, 5}

3. 切片定义

代码语言:javascript
复制
nums := []int{1, 2, 3}

4. 元素索引

代码语言:javascript
复制
	a := m["a"]
	n1 := arr2[0]
	n2 := nums[1]

5. 泛型类型 go1.17 及以后

  1. 函数定义, 定义传参泛型类型 : add[T Addable](a,b T)
  2. 函数调用, 指定传参特定类型: add[int]("a","b")
代码语言:javascript
复制
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)
}

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 熊猫云原生Go 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 圆括号
    • 1. 函数/方法 中的 传参 与 返回值
      • 2.结构体 中的方法 接收者
        • 3. 四则运算优先级
          • 4. 显示类型转换
            • 5. 类型断言
              • 6. 复杂对象的边界
                • 7. var / const / import 组
                • 花括号/大括号
                  • 1. 数据集合
                    • 2. 关键字作用域
                      • 3. 匿名代码块 / 独立作用域
                      • 方括号
                        • 1. map 的类型
                          • 2. 数组的长度
                            • 3. 切片定义
                              • 4. 元素索引
                                • 5. 泛型类型 go1.17 及以后
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档