go 语言学习笔计之结构体
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 语言学习笔计之结构体的更多相关文章
- Go语言学习笔记十: 结构体
Go语言学习笔记十: 结构体 Go语言的结构体语法和C语言类似.而结构体这个概念就类似高级语言Java中的类. 结构体定义 结构体有两个关键字type和struct,中间夹着一个结构体名称.大括号里面 ...
- 智能合约语言 Solidity 教程系列6 - 结构体与映射
写在前面 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解, 如果你还不了解,建议你先看以太坊是什么 本系列文章一部分是参考Solidity官方文档(当前最新版 ...
- C语言博客作业06——结构体&文件
C语言博客作业06--结构体&文件 1.本章学习总结 1.1思维导图 1.2.本章学习体会 在本周的学习中,我们学习了关于结构体和文件的内容.结构体的本身并不难,但以结构体为基础的链表还是让我 ...
- matlab学习笔记12_3串联结构体,按属性创建含有元胞数组的结构体,filenames,isfield,isstruct,orderfields
一起来学matlab-matlab学习笔记12 12_3 结构体 串联结构体,按属性创建含有元胞数组的结构体,filenames,isfield,isstruct,orderfields 觉得有用的话 ...
- 菜鸟学习-C语言函数参数传递详解-结构体与数组 分类: C/C++ Nginx 2015-07-14 10:24 89人阅读 评论(0) 收藏
C语言中结构体作为函数参数,有两种方式:传值和传址. 1.传值时结构体参数会被拷贝一份,在函数体内修改结构体参数成员的值实际上是修改调用参数的一个临时拷贝的成员的值,这不会影响到调用参数.在这种情况下 ...
- 如何系统学习C 语言(中)之 结构体篇
1,结构体 在前面我们知道变量和数组都可以用来存储数据,变量用来存储单个数据,数组可以用来存储一组同类型的数据,但你有没有发现--它们都只适合单一属性的数据.那现实生活中,很多对象都是具有多属性的.例 ...
- c语言_文件操作_FILE结构体解释_涉及对操作系统文件FCB操作的解释_
1. 文件和流的关系 C将每个文件简单地作为顺序字节流(如下图).每个文件用文件结束符结束,或者在特定字节数的地方结束,这个特定的字节数可以存储在系统维护的管理数据结构中.当打开文件时,就建立了和文件 ...
- C语言-06复杂数据类型-04 结构体
结构体的说明(构造类型) 数组:只能由多个相同类型的数据构成 结构体:可以由多个不同类型的数据构成 ,结构体的类型是不存在的,自己定义 int main() { // 1.定义结构体类型 定义类型的时 ...
- C语言中的系统时间结构体类型
在C语言涉及中经常需要定时触发事件,涉及到获取系统时间,其结构体类型有多种.Unix/Linux系统下有以下几种时间结构: 1.time_t 类型:长整型,一般用来表示从1970-01-01 00:0 ...
随机推荐
- Dx12 occlusion query
https://github.com/Microsoft/DirectX-Graphics-Samples/blob/master/Samples/Desktop/D3D12PredicationQu ...
- TensorFlow------单层(全连接层)实现手写数字识别训练及测试实例
TensorFlow之单层(全连接层)实现手写数字识别训练及测试实例: import tensorflow as tf from tensorflow.examples.tutorials.mnist ...
- jstl标签不起作用不管用,jstl标签直接输出表达式
jstl标签不起作用不管用,jstl标签直接输出表达式 解决办法: 在jsp页面头上 引入: <%@ page isELIgnored="false"%> 便能够解决.
- Python和Flask真强大:不能错过的15篇技术热文(转载)
Python和Flask真强大:不能错过的15篇技术热文 本文精选了 Python开发者 11月份的15篇 Python 热文.其中有基础知识,机器学习,爬虫项目实战等. 注:以下文章,点击标题即可阅 ...
- 【云计算】OpenStack Horizon DashBoard定制化,完整实现前后台交互
项目代码见GitHub:https://github.com/junneyang/openstack-customization-example 参考资料: Install and configure ...
- 【实践】关于p 标签内嵌 p标签的bug
项目中遇到了一点小问题: 是这样的,在输入框包裹元素 p标签中想内嵌一个p 标签用作显示提示字符,谁知发生了一下一幕: 页面结构: <p class="modify-info-wrap ...
- elasticsearch java客户端api使用(一)
1.客户端client构建 package com.pz998.app.service.utils; import static org.elasticsearch.common.settings ...
- Elasticsearch的javaAPI之query dsl-queries
Elasticsearch的javaAPI之query dsl-queries 和rest query dsl一样,elasticsearch提供了一个完整的Java query dsl. 查询建造者 ...
- C#秘密武器之委托
在C#的世界里,委托是无处不在,尤其在.NET自己封装的框架里到处都有其身影,所以掌握委托就很有必要了!那什么是委托呢?其实委托就是一种数据类型,跟int等东东差不多,只不过在使用时要自己先去构建一个 ...
- JMeter 五:监控服务器
参考:http://jmeter.apache.org/usermanual/build-monitor-test-plan.html 添加Thread Group 添加方法:Test Plan上右键 ...