zoukankan      html  css  js  c++  java
  • Golang语言练习

    习题:https://github.com/rundaisc/goLearningTest/tree/master/day1

    day1

    • 创建一个基于 for 的简单的循环。使其循环 10 次,并且使用 fmt 包打印出计数 器的值
    
    package main
    
    import "fmt"
    
    func main() {
    	for i := 0; i < 10; i++ {
    		fmt.Println("i =", i)
    	}
    }
    
    • 用 goto 改写 1 的循环。关键字 for 不可使用
    
    package main
    
    import "fmt"
    
    func main() {
    	i := 0
    BEGIN:
    	fmt.Println("i =", i)
    	i++
    	if i < 10 {
    		goto BEGIN
    	}
    }
    
    • 再次改写这个循环,使其遍历一个 array,并将这个 array 打印到屏幕上
    package main
    
    import "fmt"
    
    func main() {
    	var arr [10]int
    	for i := 0; i < 10; i++ {
    		arr[i] = i
    	}
    	for _, num := range arr {
    		fmt.Println("i =", num)
    	}
    }
    
    • 解决这个叫做 Fizz-Buzz 的问题:编写一个程序,打印从 1 到 100 的数字。当是3个倍数数就打印 “Fizz” 代替数字,当是5的倍数就打印 “Buzz” 。当数字同时是3和5的倍数 时,打印 “FizzBuzz” 。
    package main
    
    import "fmt"
    
    func main() {
    	i := 0
    	for i < 100 {
    		i++
    		if i%15 == 0 {
    			fmt.Println("FizzBuzz")
    		} else if i%3 == 0 {
    			fmt.Println("Fizz")
    		} else if i%5 == 0 {
    			fmt.Println("Buzz")
    		} else {
    			fmt.Println(i)
    		}
    	}
    }
    
    • 建立一个 Go 程序打印下面的内容(到 100 个字符):
    A
    AA
    AAA
    AAAA
    AAAAA
    AAAAAA
    AAAAAAA
    
    package main
    
    import "fmt"
    
    func main() {
    	for i := 0; i < 100; i++ {
    		for j := 0; j < i; j++ {
    			fmt.Print("A")
    		}
    		fmt.Print("
    ")
    	}
    }
    
    • 建立一个程序统计字符串里的字符数量: asSASA ddd dsjkdsjs dk 同时输出这个字符串的字节数

    提示: 看看 unicode/utf8 包

    package main
    
    import (
    	"fmt"
    	"unicode/utf8"
    )
    
    func main() {
    	str := "asSASA ddd dsjkdsjs dk汉子"
    	fmt.Println("字节数(长度)", len(str), "字符数", len([]rune(str)), "字符数", utf8.RuneCount([]byte(str)))
    }
    
    • 扩展/修改上一个问题的程序,替换位置 4 开始的三个字符为 “abc”
    package main
    
    import (
    	"fmt"
    	"strings"
    )
    
    func main() {
    	str := "asSASA ddd dsjkdsjs dk"
    	str2 := strings.Replace(str, str[3:6], "abc", 1)
    	fmt.Println(str, str2)
    }
    
    • 编写一个 Go 程序可以逆转字符串,例如 “foobar” 被打印成 “raboof”
    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	str := "Forbar中文"
    	r := []rune(str)
    	// for i := len([]rune(str)) - 1; i > -1; i-- {
    	// 	fmt.Print(string(str[i]))
    	// }
    	for i, j := 0, len(r)-1; i < j; i, j = i+1, j-1 {
    		r[i], r[j] = r[j], r[i]
    	}
    
    	fmt.Println(string(r))
    
    }
    
    • 编写计算一个类型是 float64 的 slice 的平均值的代码。
    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	arr := []float64{0.1, 0.8, 1.2, 9.8, 8.7, 12.1, 9.8}
    	fmt.Println(arr)
    	var s float64
    	s = 0.0
    	for _, num := range arr {
    		s += num
    	}
    	fmt.Println("总合", s, "平均值", s/float64(len(arr)))
    }
    
  • 相关阅读:
    pdflush的工作原理
    proc/sys/net/ipv4/下各项的意义
    Linux系统调用--getrlimit()与setrlimit()函数详解
    定位多线程内存越界问题实践总结
    Linux动态频率调节系统CPUFreq之三:governor
    Linux动态频率调节系统CPUFreq之二:核心(core)架构与API
    Linux动态频率调节系统CPUFreq之一:概述
    ubuntu cpu频率控制
    ThinkPHP5.1的数据库链接和增删改查
    php 常用的常量
  • 原文地址:https://www.cnblogs.com/superhin/p/15264965.html
Copyright © 2011-2022 走看看