go 语言学习笔计之结构体
2024-08-20 20:38:31
go 语言中的结构体方法
结构体名称的大小写有着不同的意义: 小写表示不能被别的包访问
package main
import "fmt" type Rect struct {
width,height int
} func (r *Rect) area() int {
return r.width*r.height;
} func main() { r:=Rect{width:10,height:10}
fmt.Println(r.area()); rp:=&r;
fmt.Println(rp.area());
}
使用结构体来解析xml
首先我们看xml的格式,对于属性(attr)和节点使用是不一样的,
具体的使用方式如下
<bulkPmMrDataFile>
<fileHeader fileFormatVersion="1.0.3" reportTime="2015-06-18T10:45:00.178+08:00" startTime="2015-06-18T10:30:00.178+08:00" endTime="2015-06-18T10:45:00.178+08:00" period="0"/>
</bulkPmMrDataFile>
package ticket
import (
"path"
"io/ioutil"
"fmt"
"encoding/xml"
"os"
) type BulkPmMrDataFile struct {
FileHeader FileHeader `xml:"fileHeader"`
ENB ENB `xml:"eNB"`
} type FileHeader struct {
FileFormatVersion string `xml:"fileFormatVersion,attr"`
ReportTime string `xml:"reportTime,attr"`
StartTime string `xml:"startTime,attr"`
EndTime string `xml:"endTime,attr"`
Period string `xml:"period"`
} type ENB struct {
Id string `xml:"id,attr"`
UserLabel string `xml:"userLabel,attr"`
Measurement Measurement `xml:"measurement"`
} type Measurement struct {
Smr string `xml:"smr"`
Object Object `xml:"object"`
} type Object struct {
Id string `xml:"id,attr"`
MmeUeS1apId string `xml:"MmeUeS1apId,attr"`
MmeCode string `xml:"MmeCode"`
TimeStamp string `xml:"TimeStamp"`
V string `xml:"v"`
} func CheckEror(err error) {
if err != nil {
fmt.Fprintf(os.Stderr, "Fatal error: %s", err.Error())
os.Exit()
}
} func main() {
filename := path.Join("input", "xxxx.xml")
content, err := ioutil.ReadFile(filename) fmt.Println(filename);
if ( err!=nil) {
fmt.Println("open file err")
CheckEror(err)
} var result BulkPmMrDataFile
err=xml.Unmarshal(content, &result)
if (err!=nil) {
CheckEror(err)
}
fmt.Println("here");
fmt.Println("report time:"+result.FileHeader.ReportTime);
fmt.Println("enb id Object.Id :"+result.ENB.Measurement.Object.V);
}
最新文章
- Go语言 字符串处理
- 2013长沙邀请赛A So Easy!(矩阵快速幂,共轭)
- [荐] jQuery取得select选择的文本与值
- Spring 作用域 scope
- iTunes - Forensic guys&#39; best friend
- java集合 collection-list-ArrayList 去除ArrayList集合中的重复元素。
- java条件选择学习
- 关于Git的stash命令
- ExtJS 4 类系统
- 【JS学习笔记】第一个JS效果——鼠标提示框
- input标签元素,value属性取值问题,赋值
- CentOS 7.3 minimal 开启网络服务
- spring cloud 入门系列二:使用Eureka 进行服务治理
- Android 访问assets下的文件
- 密码机制(PGP)
- 006-网页嵌入数据Data URI scheme
- Eclipse文件首部自动加 作者时间
- 51Nod:1086背包问题 V2
- ajax异步、同步问题,KindEditor ajax提交内容,ajax提交form表单 解决按两次的问题
- Extjs gridPanel 动态指定表头