Go:常用语法练习(一)

1.输出打印:go的第一个程序

题目要求:

输出打印"Hello World!"

运行结果示例:

考点:

1.必须在源文件中非注释的第一行指明这个文件属于哪个包,package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包

2.导入实现格式化输入输出的 fmt 包

3.func main() 是程序开始执行的函数。main() 函数是每一个可执行程序所必须包含的。

4.fmt.Println(...) 可以将字符串输出到控制台,并在最后自动增加换行字符 \n

运行代码示例:

package main

import (
    "fmt"
)
func main() {
    fmt.Println("Hello World!")
}

2.变量:小明信息

题目要求:

已知小明的信息(姓名:小明,年龄:23,性别:男),定义三个变量,分别表示姓名(string类型),年龄(int类型),性别(男true,女false,bool类型),然后按照姓名,年龄,性别的顺序,逐行输出对应的信息。

运行结果示例:

考点:

1.Go中,一行代表一个语句的结束,不需要我们额外使用分号作为一行代码的结尾。

2.变量的声明:var 变量名 变量类型 = 值,如:var d int = 100

var 变量名 = 值,程序会自动判断其类型

变量名 := 值,注意 :=左侧的变量不应该是已经声明过的,否则会导致编译错误。

运行代码示例:

package main

import (
    "fmt"
)
func main() {
    var name string ="小明" // 变量的声明方式一
    age := 23 // 变量的声明方式二
    var gender = true // 变量的声明方式三
    fmt.Println(name)
    fmt.Println(age)
    fmt.Println(gender)

}

3.变量:个人信息

题目要求:

每个人都有姓名,年龄,性别,用三个变量,类型分别是string,int,bool,来表示人的这三个基本信息。然后按照,姓名,年龄,性别的顺序进行输出打印。

运行结果示例:

考点:

只声明一个变量,并不为其指定初始值。指定变量类型如果没有初始化,则变量默认为零值(零值为变量没有做初始化时系统默认设置的值,不一定是0。例如数值类型默认为0,布尔类型默认为false,字符串类型默认为“”)。

运行代码示例:

package main

import  "fmt"

func main() {
    var name string
    var age int
    var gender bool

    fmt.Println(name)
    fmt.Println(age)
    fmt.Println(gender)
}

4.常量:国家名称

题目要求:

定义三个常量来分别表示中国,英国,美国这三个国家的名称,并按照中国,英国,美国的顺序逐行打印。

运行结果示例:

考点:

在go语言中,常量使用关键字const标识,语法如下:

const identifier [type] = value
const c_name1, c_name2 = value1, value2

运行代码示例:

package main

import  "fmt"

func main() {
    const ch = "中国"
    const uk string = "英国"
    const us = "美国"

    fmt.Println(ch)
    fmt.Println(uk)
    fmt.Println(us)
}

5.指针:值和指针

题目要求:

给定两个变量a,b,判断两个变量的地址,值(a,b的地址取得)是否相等,将结果依次存入切片,并返回。

运行结果示例:

考点:

1.go语言中的函数定义语法

func 函数名(参数列表) 返回值类型 {
    // 函数体
}

在go语言中,所有的变量类型都是写在变量名之后的。且函数的{必须与函数名在同一行,不能跨行。

2.&(取地址)和*(根据地址取值)

运行代码示例:

package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param a int整型 变量a
 * @param b int整型 变量b
 * @return bool布尔型一维数组
*/
func equal( a int ,  b int ) []bool {
    // write code here
    return []bool{&a == &b,*&a == *&b}

}

6.字符串:拼接字符串

题目要求:

给定一个字符串数组,将其拼接成一个字符串。

运行结果示例:

考点:

数组的遍历:

    for index, value := range array2 {
		fmt.Println("inde = ", index, ",value = ", value)
	}

使用range遍历数组,这里我们用不到index,因此可以用_代替(所有定义出的变量都应被使用,否则无法通过编译)

运行代码示例:

func join( s []string ) string {
    var res string
    // write code here
   for _,value := range s{
        res += value
   }
   return res
}

7.字符串:字符数量

题目要求:

给定一个字符串,统计其中的字符个数(一个中文算一个)。

运行结果示例:

考点:

1.rune 类型是 Go 语言的一种特殊数字类型。在 builtin/builtin.go 文件中,它的定义:type rune = int32;官方对它的解释是:rune 是类型 int32 的别名,在所有方面都等价于它,用来区分字符值跟整数值。使用单引号定义 ,返回采用 UTF-8 编码的 Unicode 码点。Go 语言通过 rune 处理中文,支持国际化多语言。在 Go 语言中,字符可以被分成两种类型处理:对占 1 个字节的英文类字符,可以使用 byte(或者 unit8 );对占 1 ~ 4 个字节的其他字符,可以使用 rune(或者 int32 ),如中文、特殊符号等。

2.将字符串转化为rune数组,再返回数组长度。

运行代码示例:

func count( s string ) int {
    // write code here
    run := []rune(s)
    return len(run)
}

8.字符串:回文数

题目要求:

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

例如,121 是回文,而 123 不是。

运行结果示例:

考点:

1.类型转换需要用到 "strconv"包。例如将int型变量转换为字符串:

num := 123
str := strconv.Itoa(num)

2.算法思路:将int型数据转换成字符串,遍历字符串比较其前面元素以及其对应位置的元素是否相同,遍历结束(只需要遍历一半即可)如果均相同,返回true。

3.for循环语句语法格式

for i := 0; i <= 10; i++ {
         sum += i
      }

4.if判断语句语法格式

if 判断条件 {
        
}

5.Go 语言的内建函数 len(),可以用来获取切片、字符串、通道(channel)等的长度

运行代码示例:

func isPalindrome( x int ) bool {
    // write code here
    s := strconv.Itoa(x)
    for i:= 1; i< len(s) /2; i++ {
        if s[1] != s[len(s) - i - 1] {
            return false
        }
    }
    return true
}

猜你喜欢

转载自blog.csdn.net/Liu_y_xin/article/details/141904637