golang

hotqin888 · · 1365 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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)


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:hotqin888

查看原文:golang

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1365 次点击  
加入收藏 微博
1 回复  |  直到 2022-01-25 21:26:48
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传