Day5

今天边学习,边在Golang中打代码练习,虽然比以前只靠看的方式学用时更久,但感觉更有效,下面附上我练习的代码:

package main

import (
	"fmt"
	"strconv"
	"strings"
	"unicode/utf8"
)

func main(){
	fmt.Println("1、字典:")
	//定义字典
	var m = map[string]int{}
	m1 := make(map[string]int)
	m2 := map[string]string{
		"you": "people",
		"I": "robot",
	}
	//字典操作
	//添加元素
	m1["key1"] = 1
	m1["key2"] = 2
	m1["key3"] = 3
	m["tt"] = 3
	fmt.Println(m)
	fmt.Println(m1)
	fmt.Println(m2)

	//获取字典长度
	fmt.Println(len(m1))

	//判断键值对是否存在
	if v, ok := m1["key3"];ok{
		fmt.Println(v)
	}
	if v, ok := m1["key1"];ok{
		fmt.Println(v)
	}

	//字典遍历(默认无序遍历)
	for key, value := range m1{
		fmt.Println("key:", key, "value:", value)
	}

	//删除元素
	delete(m1,"key3")
	fmt.Println(m1)
	m1["key4"] = 4

	//将函数作为值类型存入字典中
	m4 := make(map[string]func(a, b int)int)
	m4["add"] = func(a, b int) int{
		return a + b
	}
	m4["multi"] = func(a, b int)int{
		return a * b
	}
	fmt.Println(m4["add"](3,4))
	fmt.Println(m4["multi"](3,4))

	//字符串
	fmt.Println("\n 2、字符串:")
	//定义
	s := "helloworld"
	//s[0] = 'H'	Go创建字符串后不可变,这样的赋值操作不允许

	//修改字符串
	a := "helloworld"
	b := []byte(s)
	b[0] = 'H'
	a = string(b)
	fmt.Printf("修改前:%v,修改后的字符串:%v\n", s, a)

	//若字符串包含中文,不能直接用byte切片,可用下列方式:
	s = "hello 中国"
	fmt.Println(len(s))	//12
	fmt.Println(utf8.RuneCountInString(s))	//8
	b2 := []byte(s)
	for i := 0; i < len(b2); i++{
		fmt.Printf("%c", b2[i])
	}//hello 中国 	中文乱码
	fmt.Println()
	r := []rune(s)
	for i := 0; i < len(r); i++{
		fmt.Printf("%c", r[i])
	}//hello,中国

	//strings包
	var ss string = "This is an example of a string"
	//判断是否以Th开头
	fmt.Printf("\n%t\n", strings.HasPrefix(ss, "Th"))
	//判断是否以aa结尾
	fmt.Printf("%t\n", strings.HasSuffix(ss, "Th"))
	//判断是否包含“an”字串
	fmt.Printf("%t\n", strings.Contains(ss, "an"))

	//strconv包实现了基本数据类型与字符串之间的转换
	numInt, err := strconv.Atoi("-43") //将字符串转为int,若转换失败则返回对应的error值
	s32 := strconv.Itoa(-43)           //将int型转为字符串
	fmt.Printf("num_int: %d, error: %v, s32: %v\n", numInt, err, s32)

	fmt.Println("\n End: Go to have a good day!")
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值