日期: 2022-09-21 05:50:12 浏览数:5

上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
迪庆设计网页公司

width,height float64
}
func (r *Rect) Area() float64{ //为Rect类型绑定Area的方法,*Rect为指针引用可以修改传入参数的值
return r.width*r.height //方法归属于类型,不归属于具体的对象,声明该类型的对象即可调用该类型的方法
}
Ng Li
Ng Li
ngl***163.com
3年前 (2019-05-08)
MissLi
luy***.w@yahoo.com
参考地址
5
利用指针改变结构体对应的值:
package main
import (
"fmt"
"strconv"
)
type Books struct {
title string
author string
subject string
book_id int
}
func printBook(book Books) {
/*打印函数,没有返回值,传入结构体*/
/*结构体只作为临时参数*/
fmt.Printf("Book title: %s ", book.title)
fmt.Printf("Book author: %s ", book.author)
fmt.Printf("Book subject: %s ", book.subject)
fmt.Printf("Book id: %d ", book.book_id)
}
func changeBook(book *Books, new_info_type string, new_info string) {
if new_info_type == "title" {
book.title = new_info
} else {
if new_info_type == "author" {
book.author = new_info
} else {
if new_info_type == "subject" {
book.subject = new_info
} else {
int, err := strconv.Atoi(new_info)
if err == nil {
book.book_id = int
}
}
}
}
}
func main() {
book1 := Books{"Go Language", "www.golang.com", "Go语言基础", 6495407}
book2 := Books{"Harry Porter", "www.youku.com", "Deathly Hallows", 6448722}
fmt.Println("------原始信息------")
printBook(book1)
printBook(book2)
fmt.Println("------新的信息-------")
changeBook(&book1, "title", "Summer")
changeBook(&book2, "book_id", "1111111")
printBook(book1)
printBook(book2)
}
MissLi
MissLi
luy***.w@yahoo.com
参考地址
2年前 (2020-08-23)
灭霸
143***7200@qq.com
90
结构体中属性的首字母大小写问题
首字母大写相当于 public。
首字母小写相当于 private。
注意: 这个 public 和 private 是相对于包(go 文件首行的 package 后面跟的包名)来说的。
敲黑板,划重点
当要将结构体对象转换为 JSON 时,对象中的属性首字母必须是大写,才能正常转换为 JSON。
示例一:
type Person struct {
Name string //Name字段首字母大写
age int //age字段首字母小写
}
func main() {
person:=Person{"小明",18}
if result,err:=json.Marshal(&person);err==nil{ //json.Marshal 将对象转换为json字符串
fmt.Println(string(result))
}
}
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
结构体是作为参数的值传递:
package mainimport "fmt"type Books struct { title string author string subject string book_id int}func changeBook(book Books) { book.title = "book1_change"}func main() { var book1 Books book1.title = "book1" book1.author = "zuozhe" book1.book_id = 1 changeBook(book1) fmt.Println(book1)}结果为:
{book1 zuozhe 1}如果想在函数里面改变结果体数据内容,需要传入指针:
package mainimport "fmt"type Books struct { title string author string subject string book_id int}func changeBook(book *Books) { book.title = "book1_change"}func main() { var book1 Books book1.title = "book1" book1.author = "zuozhe" book1.book_id = 1 changeBook(&book1) fmt.Println(book1)}结果为:
{book1_change zuozhe 1}星海
yan***anbao12@163.com
Ng Li
ngl***163.com
struct 类似于 java 中的类,可以在 struct 中定义成员变量。
要访问成员变量,可以有两种方式:
不需要通过 getter, setter 来设置访问权限。
type Rect struct{ //定义矩形类 x,y float64 //类型只包含属性,并没有方法 width,height float64}func (r *Rect) Area() float64{ //为Rect类型绑定Area的方法,*Rect为指针引用可以修改传入参数的值 return r.width*r.height //方法归属于类型,不归属于具体的对象,声明该类型的对象即可调用该类型的方法}Ng Li
ngl***163.com
1.通过 struct 变量.成员 变量来访问。
2.通过 struct 指针.成员 变量来访问。
MissLi
luy***.w@yahoo.com
参考地址
利用指针改变结构体对应的值:
package mainimport ( "fmt" "strconv")type Books struct { title string