• 基本练习


    格式化 

    func main(){
    	fmt.Printf("this is %s", "jab")	// 字符串显示
    	fmt.Println()
    	fmt.Printf("this is %x", "jab")	// 16进制显示
    	fmt.Println()
    	fmt.Printf("this is %.3f", 3.33333)		// 浮点型显示
    	fmt.Println()
    	fmt.Printf("this is %b", 100)		// 整型以二进制显示
    	fmt.Println()
    	fmt.Printf("this is %d", 100)		// 整形十进制显示
    }
    --->
    this is jab
    this is 6a6162
    this is 3.333
    this is 1100100
    this is 100
    

      

     strings&strconv

    package main
    
    import (
    	"fmt"
    	"strconv"
    	"strings"
    )
    
    var (
    	url = "baidu.com"
    	dir = "/data/app"
    	dir2 = "/data/app/"
    	data = "  name=jab  "
    	a = "a"
    	n = 2
    )
    
    
    func stringsTest() {
    	// 判断以字符开头
    	if ! strings.HasPrefix(url,"http://") {
    		url = "http://" + url
    	}
    	// 判断以字符结尾
    	if ! strings.HasSuffix(dir, "/") {
    		dir = dir + "/"
    	}
    	fmt.Println(url)
    	fmt.Println(dir)
    
    	// 脱去空白字符,脱去左边字符串,脱去右边字符串
    	data = strings.TrimSpace(data)
    	dir2 = strings.TrimLeft(dir2,"/")
    	dir3 := strings.TrimRight(dir2,"/")
    	fmt.Println(data,dir2,dir3)
    
    	// 分割字符串为切片
    	s := strings.Split(dir, "/")
    	for i:=0;i<len(s);i++ {
    		fmt.Println(s[i])
    	}
    
    	// 将切片组合为字符串
    	s2 := strings.Join(s,"/")
    	fmt.Println(s2)
    }
    
    func strconvTest() {
    	// int转str
    	// str转int
    	fmt.Println(strconv.Itoa(n))
    	result,err := strconv.Atoi(a)
    	if err != nil {
    		fmt.Println("error..msg=", err)
    	} else {
    		fmt.Println(result)
    	}
    }
    
    func main() {
    	stringsTest()
    	strconvTest()
    }
    

      

    time

    func atime() {
    	// 获取当前时间,使用当前时间的参数格式化时间
    	//Format格式化必须使用这个时间,然后自己定义格式。
    	now := time.Now()
    	fmt.Printf("%d%02d%02d-%02d:%02d:%02d",now.Year(),now.Month(),now.Day(),now.Hour(),now.Minute(),now.Second())
    	fmt.Println()
    	fmt.Println(now.Format("2006/01/02 15:04:05"))
    	time.Sleep(time.Second*2)
    }
    
    func main() {
    	// 计算函数耗时
    	startclock := time.Now().UnixNano()
    	atime()
    	endclock := time.Now().UnixNano()
    	fmt.Println("cost time:",endclock - startclock)
    }
    

      

    函数

    函数变量

    //type 类型申明
    // add_func 名称
    // func(int, int) int 类型,在这里是个函数
    type add_func func(int, int) int
    
    func add(a, b int) int{
    	return a + b
    }
    
    // 传递一个函数变量,要求是add_func这个类型,c是add函数变量,符合这个类型
    func operator(op add_func, a int, b int) int {
    	return op(a, b)
    }
    
    func main() {
    	c := add
    	fmt.Println(c)
    	sum := operator(c, 100, 200)
    	fmt.Println(sum)
    }
    

      

    变长变量

    // 一个或多个int相加,返回结果
    func add2(a int, arg...int) (sum int) {
    	sum = a
    	for i := 0; i < len(arg); i++ {
    		sum = sum + arg[i]
    	}
    	return sum
    }
    
    // 一个或多个字符串拼接
    func concat(s string, arg...string) (ss string) {
    	ss = s
    	for i := 0; i < len(arg); i++ {
    		ss = ss + arg[i]
    	}
    	return ss
    }
    

      

    匿名函数

    // 匿名函数,函数后面直接跟传参
    func niming(a ,b int) {
    	result := func(x, y int) int{
    		return x + y
    	}(a,b)
    	fmt.Println(result)
    }
    

      

    for循环

    package main
    
    import "fmt"
    
    // for循环练习
    func main() {
    	for i := 1; i < 10; i++ {
    		for j := 1; j <= i; j++ {
    			fmt.Printf("%d * %d = %d  ",i, j, i*j)
    		}
    		fmt.Println()
    	}
    }
    

     

    // 输入一个数,判断是否是整数
    func test1() {
    	// for {}相当于while True,无限循环
    	for {
    		var str string
    		fmt.Scanf("%s",&str)
    		a,error := strconv.Atoi(str)
    		if error != nil {
    			fmt.Println("error!")
    			return
    		}
    		fmt.Println(a)
    	}
    }
    

      

    切片

    package main
    
    import "fmt"
    
    // slice练习
    func main() {
    	s1 := make([]int, 5, 100)	// 使用make函数创建int切片,len为5,cap为100
    	s2 := []string{"Jack", "Mark", "Nick"}		// 使用字面量创建string切面,len和cap都是4
    	s3 := []int{}		// 空切片
    
    	// 按索引给s1赋值
    	for i := 0; i < len(s1); i++{
    		s1[i] = i
    	}
    	fmt.Println(s1)
    
    	// 打印s2的所有元素
    	for i := 0; i < len(s2); i++{
    		fmt.Println(s2[i])
    	}
    
    	// 往s3里追加元素
    	for i :=0; i < 10; i++{
    		s3 = append(s3, i)
    	}
    	fmt.Println(s3)
    }
    
    // []int空切片
    // append(切片,加入的元素)
    // a...表示a里面的所有元素
    func slice() {
    	var a []int
    	var b []int
    	a = append(a,1,2,3,4)
    	b = append(a,a...)
    	fmt.Println(a)
    	fmt.Println(b)
    }
    

      

      

     

  • 相关阅读:
    CenOS下LAMP搭建过程
    CentOS下将自编译的Apache添加为系统服务
    CentOS下编译安装Apache(httpd)
    CentOS6下配置Django+Apache+mod_wsgi+Sqlite3过程
    Python格式化输出
    Python里如何实现C中switch...case的功能
    Python科学计算学习一 NumPy 快速处理数据
    每个程序员都应该学习使用Python或Ruby
    Python IDLE中实现清屏
    Graphviz 可视化代码流程
  • 原文地址:https://www.cnblogs.com/jabbok/p/11285479.html
Copyright © 2020-2023  润新知