赞
踩
最近发现越来越多的公司在用Golang了,所以精心整理了一套视频教程给大家,这个是其中的第二部,后续还会有很多。
视频已经录制完成,完整目录截图如下:
package main
// 使用type进行声明
// 使用struct说明这是一个结构体,类似于Java中的class声明一个类
type User struct {
name string // 小写的说明是内部使用,类似于Java的private
Age int // 大小的说明是外部使用,类似于Java的public
}
package main import "fmt" // 使用type进行声明 // 使用struct说明这是一个结构体,类似于Java中的class声明一个类 type User struct { name string // 小写的说明是内部使用,类似于Java的private Age int // 大小的说明是外部使用,类似于Java的public } func main() { var u User fmt.Println(u) u.name = "张三" u.Age = 23 fmt.Println(u) }
package main import "fmt" // 使用type进行声明 // 使用struct说明这是一个结构体,类似于Java中的class声明一个类 type User struct { name string // 小写的说明是内部使用,类似于Java的private Age int // 大小的说明是外部使用,类似于Java的public } func main() { var u = new(User) fmt.Println(u) u.name = "张三" u.Age = 23 fmt.Println(u) }
package main import "fmt" // 使用type进行声明 // 使用struct说明这是一个结构体,类似于Java中的class声明一个类 type User struct { name string // 小写的说明是内部使用,类似于Java的private Age int // 大小的说明是外部使用,类似于Java的public } func main() { var u = &User{ name: "", Age: 0, } fmt.Println(u) u.name = "张三" u.Age = 23 fmt.Println(u) }
package main import "fmt" // 使用type进行声明 // 使用struct说明这是一个结构体,类似于Java中的class声明一个类 type User struct { name string // 小写的说明是内部使用,类似于Java的private Age int // 大小的说明是外部使用,类似于Java的public } func main() { var u = User{"张三", 33} fmt.Println(u) }
package main import "fmt" // 使用type进行声明 // 使用struct说明这是一个结构体,类似于Java中的class声明一个类 type User struct { name string // 小写的说明是内部使用,类似于Java的private Age int // 大小的说明是外部使用,类似于Java的public } func NewUser(name string, age int) *User { return &User{name, age} } func main() { var u = NewUser("张三", 33) fmt.Println(u) }
package main import ( "encoding/json" "fmt" ) type User struct { name string Age int } func main() { var u = User{"张三", 33} data, err := json.Marshal(u) if err != nil { fmt.Println(err) return } fmt.Println(string(data)) }
package main import ( "encoding/json" "fmt" ) type User struct { name string Age int } func main() { var s = `{"Age":33}` var u User err := json.Unmarshal([]byte(s), &u) if err != nil { fmt.Println(err) return } fmt.Println(u) fmt.Println(u.name, u.Age) }
package main import ( "encoding/json" "fmt" ) type User struct { Name string `json:"name"` Age int `json:"age"` } func main() { var u = User{"张三", 33} data, err := json.Marshal(u) if err != nil { fmt.Println(err) return } fmt.Println(string(data)) }
package main import ( "encoding/json" "fmt" ) type Address struct { Province string `json:"province"` City string `json:"city"` } type User struct { Name string `json:"name"` Age int `json:"age"` UAddress Address `json:"address"` } func main() { var u = User{"张三", 33, Address{"四川", "成都"}} data, err := json.Marshal(u) if err != nil { fmt.Println(err) return } fmt.Println(string(data)) }
package main import ( "fmt" ) type User struct { Name string `json:"name"` Age int `json:"age"` } type UserManager struct { Users []User `json:"users"` } func NewUserManager() *UserManager { return &UserManager{ Users: make([]User, 0), } } func (um *UserManager) AddUser(u User) { um.Users = append(um.Users, u) } func main() { um := NewUserManager() um.AddUser(User{"张三", 33}) fmt.Println(um.Users) }
package main import ( "fmt" ) type IAnimal interface { Walk() Talk() } type Cat struct{} func (cat *Cat) Walk() { fmt.Println("蹦蹦跳") } func (cat *Cat) Talk() { fmt.Println("喵喵喵") } func main() { var animal IAnimal = new(Cat) animal.Walk() animal.Talk() }
package main import ( "fmt" ) type IAnimal interface { Walk() Talk() } type Cat struct{} func (cat *Cat) Walk() { fmt.Println("蹦蹦跳") } func (cat *Cat) Talk() { fmt.Println("喵喵喵") } type Dog struct{} func (cat *Dog) Walk() { fmt.Println("四脚着地跑") } func (cat *Dog) Talk() { fmt.Println("汪汪汪") } func main() { var animal IAnimal = new(Cat) animal.Walk() animal.Talk() animal = new(Dog) animal.Walk() animal.Talk() }
package main import "fmt" type Triangle struct { Bottom float32 Height float32 } func (t *Triangle) Area() float32 { return (t.Height * t.Bottom) / 2 } func main() { t := &Triangle{8, 12} fmt.Println(t.Area()) }
package user
type User struct {
name string
}
func (u *User) SetName(name string) {
u.name = name
}
func (u *User) GetName() string {
return u.name
}
package main
import (
"fmt"
"hello_go/c15_user/user"
)
func main() {
zs := &user.User{}
zs.SetName("张三")
fmt.Println(zs.GetName())
}
package main import "fmt" type IShape interface { Area() float32 } type Triangle struct { Bottom float32 Height float32 } func (t *Triangle) Area() float32 { return (t.Height * t.Bottom) / 2 } type Square struct { Width float32 Height float32 } func (s *Square) Area() float32 { return s.Height * s.Width } func main() { var s IShape s = &Triangle{8, 12} fmt.Println(s.Area()) s = &Square{8, 12} fmt.Println(s.Area()) }
package main
type IRead interface {
Read(path string)
}
type IWrite interface {
Write(p []byte)
}
// 既拥有IRead相关的接口,也拥有IWrite相关的接口
type IFile interface {
IRead
IWrite
}
package main import "fmt" func main() { var a interface{} = 33 switch a.(type) { case int: fmt.Println("int") case string: fmt.Println("string") default: fmt.Println("unknown") } }
package main
import (
"fmt"
"reflect"
)
func main() {
var a interface{} = 33
fmt.Println(reflect.TypeOf(a))
}
package main import ( "fmt" "reflect" ) func main() { var a interface{} = 33 ra := reflect.ValueOf(a) fmt.Println("type:", ra.Type()) fmt.Println(ra.Kind()) fmt.Println(ra.Kind() == reflect.Int) }
package main import ( "fmt" "reflect" ) func main() { a := 33 fmt.Println("修改之前:", a) // 如果要修改,一定要传引用 ra := reflect.ValueOf(&a) rae := ra.Elem() rae.SetInt(333) fmt.Println("修改之后:", a) }
本套教程作为Go语言的零基础入门课程,主要讲解了Go语言的一些入门级别的简单基础知识,每节课都附上了完整的源码,以实战为主。
如果您需要完整的源码,打赏20元即可。
人生苦短,我用Python,我是您身边的Python私教~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。