1.计算字符串中每个出现字符的次数案例
1)map改写
func main() {
inputCharArr := [20]byte{};
checkNumDic := map[byte]int{};
for i:=0; i<20; i++{
fmt.Scanf("%c",&inputCharArr[i]);
}
for j:=0; j<20; j++{
existFlag := false;
for k,_ := range checkNumDic{
if k == inputCharArr[j]{
checkNumDic[k]++;
existFlag = true;
}
}
if(!existFlag){
checkNumDic[inputCharArr[j]] = 1;
}
}
for k,v := range checkNumDic{
fmt.Printf("字母%c,出现的次数是%d次\n",k,v);
}
}
2)随意长度输入,判别输入出现字符个数
func main() {
inputCharArr := []byte{};
checkNumDic := map[byte]int{};
for{
var temp byte;
fmt.Scanf("%c",&temp);
inputCharArr = append(inputCharArr, temp);
if temp == '\n'{
break;
}
}
for j:=0; j<len(inputCharArr); j++{
if(inputCharArr[j] == '\n'){
continue;
}
existFlag := true;
for k,_ := range checkNumDic{
if k == inputCharArr[j]{
checkNumDic[k]++;
existFlag = false;
}
}
if(existFlag){
checkNumDic[inputCharArr[j]] = 1;
}
}
for k,v := range checkNumDic{
fmt.Printf("字母%c,出现的次数是%d次\n",k,v);
}
}
3)随意长度输入,判别输入出现字符个数(简化版本)
func main() {
inputCharArr := []byte{};
checkNumDic := map[byte]int{};
for{
var temp byte;
fmt.Scanf("%c",&temp);
inputCharArr = append(inputCharArr, temp);
if temp == '\n'{
break;
}
}
for j:=0; j<len(inputCharArr); j++{
if(inputCharArr[j] == '\n'){
continue;
}
checkNumDic[inputCharArr[j]]++;
}
for k,v := range checkNumDic{
fmt.Printf("字母%c,出现的次数是%d次\n",k,v);
}
}
2.struct结构体
众所周知go语言是从c语言衍生而来的第五类计算机编程语言,所以很多情况下go语言都带有着浓浓的c语言风格
例如对于struct结构体的部分来说,go语言中的struct结构就基本类似于c语言中的情况。
如果对其他编程语言有一定的了解,那么就会发现go语言中的struct结构和JS中的类与对象部分十分相似。
在go语言中,结构体需要在main函数之外使用type关键字定义,并且通常首字母大写。
eg:
//结构体声明
type 结构体名 struct{