函数/方法
中的 传参
与 返回值
func add(x,y int) (int,error){
return x+y, nil
}
结构体
中的方法 接收者
type Person struct {
Name string
}
func (p *Person) String() string{
return p.Name
}
i:=1*(2+3)
a:=int(100)
d:=time.Duration(1 * time.Second)
func output(x interface{}) {
v, ok := x.(string)
if ok {
print(v)
}
}
type User struct{}
func (u *User) Show() {
fmt.Println("hello. buddy")
}
func main() {
(&User{}).Show() // 这里
}
var / const / import
组import (
"fmt"
"time"
)
var (
a = 1
b = 2
)
const (
c = 3
d = 4
)
一句话归纳,就是作用于
map
, slice
, array
func main() {
parts := []int{1, 2, 3}
arr := [3]int{1, 2, 3}
m := map[string]string{"a": "b", "c": "d"}
}
if / else
for
select
switch
struct
interface
func
func main(){
for {
// statment
switch i{
case 1:
// statement
default:
// statement
}
}
}
fun main(){
i:=3
{
i:=3
// statement
}
}
map
的类型 m := map[string]string{"a": "b", "c": "d"}
arr1 := [3]int{1, 2, 3}
arr2 := [...]int{1, 2, 3, 4, 5}
nums := []int{1, 2, 3}
a := m["a"]
n1 := arr2[0]
n2 := nums[1]
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)
}