189 8069 5689

go语言结构器数组排序 go语言结构体数组

Go数据结构篇

1、基本数据类型

创新互联公司专注于商城网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供商城营销型网站建设,商城网站制作、商城网页设计、商城网站官网定制、成都微信小程序服务,打造商城网络公司原创品牌,更为您提供商城网站排名全网营销落地服务。

bool

string

int int8 int16 int32 int64

uint uint8 uint16 uint32 uint64 uintptr

byte // alias for int8

rune // alias for int32,represents a Unicode code point

float32 float64

complex64 complex128

常量定义

2、类型转换

(1)Go语言不允许隐式类型转换(不支持小位数类型向大位数类型转)

(2)别名和原有类型也不能进行隐式类型转换(type MyInt int64 = int64)

3、类型的预定义值

1.math.MaxInt64

2.math.MaxFloat64

3.math.MaxUInt32

4、指针类型

(1)不支持指针运算

(2)string是值类型,其默认的初始化值为空字符串,而不是nil

5、算术运算符

+ - * / % ++ --(不支持前置++ --)

6、比较运算符

#== != = =

(1)比较数组

相同维数且含有形同个数元素的数组才可以比较

每个元素都相同的才相等

7、位运算符

| ^

^ (按位置零) a (^b)

1 ^ 0 1

1 ^ 1 0

0 ^ 1 0

0 ^ 0 0

8、条件与循环

(1)循环

Go 语⾔仅⽀持循环关键字 for

(2)条件

9、数组和切片

数组截取,索引下标从0开始计数

a[开始索引(包含), 结束索引(不包含)]

a := [...]int{1, 2, 3, 4, 5}

a[1:2] //2

a[1:3] //2,3

a[1:len(a)] //2,3,4,5

a[1:] //2,3,4,5

a[:3] //1,2,3

切片内部结构

9、Map

9、字符串

Unicode UTF8

常⽤字符串函数

结构体数组定义的排序

#include "stdafx.h"

#include "stdio.h"

#include string.h

#include stdlib.h

#include conio.h

void bubble_sort(int a[2][4],int n);

void bubble_sort(int a[2][4],int n)//n为数组a的元素个数

{

int i,j,temp,temp2;

for(j=0;jn-1;j++)

for(i=0;in-1-j;i++)

{

if(a[1][i]a[1][i+1])//数组元素大小按升序排列

{

temp=a[0][i];

a[0][i]=a[0][i+1];

a[0][i+1]=temp;

temp2=a[1][i];

a[1][i]=a[1][i+1];

a[1][i+1]=temp2;

}

}

}

int main()

{

int m[2][4] = {{21,22,23,24},{90,80,98,99}};

int i;

for (i=0;i 4;i++)

{

printf("输入 %d 号学生分数:\n\t\t ",m[0][i]);

scanf("%d",m[1][i]);

}

bubble_sort(m,4);

for(i=0;i4;i++)

{

printf("%d,%d\n",m[0][i],m[1][i]);

}

system("PAUSE");

}

golang排序问题求助

如果是只有这几个的话 我们可以考虑自定义一个排序类型

func TestSort(t *testing.T) {

data := []string{"三级", "一级", "二级"}

rule := map[string]int{

"一级": 1,

"二级": 2,

"三级": 3,

}

self := SelfSort{

Rule: rule,

Data: data,

}

sort.Sort(self)

fmt.Println(self.Data)

}

type SelfSort struct {

Rule map[string]int

Data []string

}

func (p SelfSort) Len() int           { return len(p.Data) }

func (p SelfSort) Less(i, j int) bool { return p.Rule[p.Data[i]] p.Rule[p.Data[j]] }

func (p SelfSort) Swap(i, j int)      { p.Data[i], p.Data[j] = p.Data[j], p.Data[i] }

如过很多 就是真的要比较中文的话, 就用这种

package mainimport (    "bytes"

"fmt"

"io/ioutil"

"sort"

"golang.org/x/text/encoding/simplifiedchinese"

"golang.org/x/text/transform")//ByPinyin is customized sort interface to sort string by Chinese PinYintype ByPinyin []stringfunc (s ByPinyin) Len() int      { return len(s) }func (s ByPinyin) Swap(i, j int) { s[i], s[j] = s[j], s[i] }func (s ByPinyin) Less(i, j int) bool {

a, _ := UTF82GBK(s[i])

b, _ := UTF82GBK(s[j])

bLen := len(b)    for idx, chr := range a {        if idx bLen-1 {            return false

}        if chr != b[idx] {            return chr b[idx]

}

}    return true}//UTF82GBK : transform UTF8 rune into GBK byte arrayfunc UTF82GBK(src string) ([]byte, error) {

GB18030 := simplifiedchinese.All[0]    return ioutil.ReadAll(transform.NewReader(bytes.NewReader([]byte(src)), GB18030.NewEncoder()))

}//GBK2UTF8 : transform  GBK byte array into UTF8 stringfunc GBK2UTF8(src []byte) (string, error) {

GB18030 := simplifiedchinese.All[0]

bytes, err := ioutil.ReadAll(transform.NewReader(bytes.NewReader(src), GB18030.NewDecoder()))    return string(bytes), err

}func main() {

b := []string{"哈", "呼", "嚯", "ha", ","}

sort.Strings(b)    //output: [, ha 呼 哈 嚯]

fmt.Println("Default sort: ", b)

sort.Sort(ByPinyin(b))    //output: [, ha 哈 呼 嚯]

fmt.Println("By Pinyin sort: ", b)

}

copy from 网页链接


分享文章:go语言结构器数组排序 go语言结构体数组
链接URL:http://jkwzsj.com/article/ddshgdp.html

其他资讯