golang

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/details/50557751

package main

import (
	"fmt"
	//	"path"
	//	"runtime"

	//	"os"
	//	"regexp"
	//	"strings"
	//	"time"
	"encoding/json"
	//	"sort"
)

func main() {
	Example()
}

type List struct {
	Url    string
	Source string
	State  string
}

type Person struct {
	Name        string
	Age         int
	Slices      []string //slice
	Mapstring   map[string]string
	StructArray []List            //结构体的切片型
	MapStruct   map[string][]List //map:key类型是string或struct,value类型是切片,切片的类型是string或struct
	//	Desks  List
}

//func (p Person) String() string {
//	return fmt.Sprintf("%s: %d", p.Name, p.Age)
//}

// ByAge implements sort.Interface for []Person based on
// the Age field.
//type ByAge []Person

//func (a ByAge) Len() int           { return len(a) }
//func (a ByAge) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }
//func (a ByAge) Less(i, j int) bool { return a[i].Age < a[j].Age }
func Example() {
	//map 序列化为json
	var m map[string]string = make(map[string]string)
	m["Go"] = "No.1"
	m["Java"] = "No.2"
	m["C"] = "No.3"
	fmt.Println(m)

	list := []List{
		{"upload/1.jpg", "http://a.com/1.jpg", "SUCCESS"},
		{"upload/2.jpg", "http://b.com/2.jpg", "SUCCESS"},
	}

	var mm map[string][]List = make(map[string][]List)
	mm["Go"] = list
	mm["Java"] = list
	//	m["C"] = "No.3"
	fmt.Println(mm)

	people := []Person{
		{"Bob", 31, []string{"hello", "apple"}, m, list, mm},
		//		{"John", 42, []string{"python", "golang"}, m},
		//		{"Michael", 22, []string{"base", "peach", "pear"},map[string]{"a":"haha"}},
		//		{"Jenny", 26, []string{"python", "golang", "pear"},map[string]{"a":"haha"}},
	}
	fmt.Println(people)
	//	sort.Sort(ByAge(people))
	//	fmt.Println(people)
	b, _ := json.Marshal(people)
	fmt.Println(string(b))
	//	if bs, err := json.Marshal(m); err != nil {
	//		panic(err)
	//	} else {
	//		//result --> {"C":"No.3","Go":"No.1","Java":"No.2"}
	//		fmt.Println(string(bs))
	//	}
	// Output:
	// [Bob: 31 John: 42 Michael: 17 Jenny: 26]
	// [Michael: 17 Jenny: 26 Bob: 31 John: 42]
}

//type person struct {
//    name string
//    age int
//}
//var P person  // P现在就是person类型的变量了
//P.name = "Astaxie"  // 赋值"Astaxie"给P的name属性.
//P.age = 25  // 赋值"25"给变量P的age属性
//fmt.Printf("The person's name is %s", P.name)  // 访问P的name属性.
//除了上面这种P的声明使用之外,还有另外几种声明使用方式:
//1.按照顺序提供初始化值
//复制代码 代码如下:

//P := person{"Tom", 25}

//2.通过field:value的方式初始化,这样可以任意顺序
//复制代码 代码如下:

//P := person{age:24, name:"Tom"}

//3.当然也可以通过new函数分配一个指针,此处P的类型为*person
//复制代码 代码如下:

//P := new(person)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

BZOJ3671: [Noi2014]随机数生成器(贪心)

第1行包含5个整数,依次为 x_0,a,b,c,d ,描述小H采用的随机数生成算法所需的随机种子。第2行包含三个整数 N,M,Q ,表示小H希望生成一个1到 N...

822
来自专栏从流域到海域

《笨办法学Python》 第10课手记

《笨办法学Python》 第10课手记 本节课讲转义字符,并在代码中使用了\n(回车) 、\t (制表符,单个使用即输出八个空格)、\(打印一个\),也解释了前...

1958
来自专栏十月梦想

类的传参以及super属性和super对象

在上述例子我们也看到了指定的子类特有的方法直接指定,那么我们如何指定子类特有的属性呢?我们这里用到了super方法;

1272
来自专栏Golang语言社区

go语言json操作指南

1、Go语言的JSON 库   Go语言自带的JSON转换库为 encoding/json 1.1)其中把对象转换为JSON的方法(函数)为 json.Mar...

36512
来自专栏前端架构与工程

【译】《Understanding ECMAScript6》- 第一章-基础知识(一)

目录: 更好的Unicode编码支持 codePointAt()函数 String.fromCodePoint() 用转义序列对Non-BMP字符编码 nor...

2715
来自专栏老马寒门IT

06-老马jQuery教程-jQuery高级

jQuery里面的大部分API都是在jQuery的原型对象上定义的。jQuery源码中对原型对象做了简写的处理。也就是说:jQuery.fn === jQuer...

2240
来自专栏Golang语言社区

Go语言实现的排列组合问题实例(n个数中取m个)

本文实例讲述了Go语言实现的排列组合问题。分享给大家供大家参考,具体如下: (一)组合问题 组合是一个基本的数学问题,本程序的目标是输出从n个元素中取m个的所有...

3705
来自专栏黑泽君的专栏

方法的形式参数为引用数据类型时

方法的形式参数为引用数据类型: 基本数据类型(太简单,不是我今天要讲解的) 引用数据类型 1.方法的形式参数为类名时:需要该类的对象。(匿名对象的时候已...

1011
来自专栏Golang语言社区

Go语言的fmt包中文教程

Fmt包 import "fmt" 简介 ▾ Package fmt包含有格式化I/O函数,类似于C语言的printf和scanf。格式字符串的规则来源于C但更...

2526
来自专栏Golang语言社区

go语言json操作指南

1、Go语言的JSON 库   Go语言自带的JSON转换库为 encoding/json 1.1)其中把对象转换为JSON的方法(函数)为 json.Mar...

4338

扫码关注云+社区

领取腾讯云代金券