【Go语言刷题篇】Go从0到入门1:输出、变量、常量、字符串、指针与值的简单案例

简介: 本专栏系列都采用牛客的ACM刷题模式。

前言


本专栏系列都采用牛客的ACM刷题模式。

Q1:输出入门


题目要求:输出打印"Hello World!"

相关知识:

1、main函数是go语言程序的默认入口函数(主函数):func main()

2、go也类似其他函数一样,都是使用默认参数args,如fmt.Println(args…)

案例代码

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

Q2:定义变量并输出变量


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

相关知识:

1、Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。

2、string,int,bool 都是基本数据类型。

3、Go语言声明变量的时候为其指定初始值,格式如下:var 变量名 类型 = 表达式。

4、Go语言可以使用自动判别的形式来进行快速定义即 age:=23 系统会自动判别其类型为int类型。

5、定义的时候可以统一定义,如下代码块

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

案例代码

package main
import (
    "fmt"
)
func main() {
//     name := "小明"
//     age := 23
//     sex := true
    var name string = "小明"
    var age int = 23
    var sex bool = true
    fmt.Println(name)
    fmt.Println(age)
    fmt.Println(sex)
}

Q3:常量


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

相关知识:

1、Go语言的常量声明:const 变量名 类型 = 表达式。

2、对于定义string的时候不能使用单引号,‘国’这样的运行是会报错的。

案例代码

package main
import  "fmt"
func main() {
  const china string = "中国"
  const english string = "英国"
  const america string = "美国"
    fmt.Println(china)
    fmt.Println(english)
    fmt.Println(america)
}

Q4:值和指针


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

相关知识:

1、Go语言中的指针操作非常简单,只需要记住两个符号:&(取地址)和*(根据地址取值)

2、每个变量在运行时都拥有一个地址,这个地址代表变量在内存中的位置。

3、Go语言中使用&字符放在变量前面对变量进行“取地址”操作。 Go语言中的值类型(int、float、bool、string、array、struct)都有对应的指针类型,如:*int、*int64、*string等。


示例输入输出:

输入:1,2

返回值:[false,false]

案例代码

func equal( a int ,  b int ) []bool {
    // write code here
    return []bool {&a ==&b ,a==b}
}

Q5:拼接字符串


题目要求:给定一个字符串数组,将其拼接成一个字符串。

相关知识:

1、Go语言中使用for循环遍历切片。

2、G语言中使用“+”"可以拼接字符串。

示例输入输出:

输入:[“hello”,“-”,“world”]

输出:“hello-world”

案例代码

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

Q6:字符数量


题目要求:给定一个字符串,统计其中的字符个数(一个中文算一个)。

相关知识:

1、汉字是采用unicode编码,占三个字节。

2、字符传转化为rune数组。

3、rune是int32的别名(-231~231-1),对比byte(-128~127),可表示的字符更多。

4、len()可以求出rune数组的长度。


示例输入输出:

输入:“小明的英文名叫jack”

输出:11

案例代码

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

Q7:回文数


题目要求:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。

相关知识:

1、整型转化为字符串。

2、字符串的遍历。

案例代码:

import "strconv"
//import "fmt"
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * @param x int整型 
 * @return bool布尔型
*/
func isPalindrome(x int) bool {
  // write code here
  var str string = strconv.Itoa(x)
  length := len(str)
  for i := 0; i < length/2; i++ {
    if str[i] != str[length-i-1] {
      return false
    }
  }
  return true
}
相关文章
|
19小时前
|
存储 人工智能
字符指针变量和字符数组注意事项(区别)
字符指针变量和字符数组注意事项(区别)
6 0
|
19小时前
|
Java Go
一文带你速通go语言指针
Go语言指针入门指南:简述指针用于提升效率,通过地址操作变量。文章作者sharkChili是Java/CSDN专家,维护Java Guide项目。文中介绍指针声明、取值,展示如何通过指针修改变量值及在函数中的应用。通过实例解析如何使用指针优化函数,以实现对原变量的直接修改。作者还邀请读者加入交流群深入探讨,并鼓励关注其公众号“写代码的SharkChili”。
14 0
|
19小时前
|
Go
|
19小时前
|
存储 程序员 C语言
【C 言专栏】C 语言指针的深度解析
【4月更文挑战第30天】C 语言中的指针是程序设计的关键,它如同一把钥匙,提供直接内存操作的途径。指针是存储其他变量地址的变量,通过声明如`int *ptr`来使用。它们在动态内存分配、函数参数传递及数组操作中发挥重要作用。然而,误用指针可能导致错误,如空指针引用和内存泄漏。理解指针的运算、与数组和函数的关系,以及在结构体中的应用,是成为熟练 C 语言程序员的必经之路。虽然挑战重重,但掌握指针将增强编程效率和灵活性。不断实践和学习,我们将驾驭指针,探索更广阔的编程世界。
|
19小时前
|
Java Go 区块链
【Go语言专栏】Go语言中的指针与内存管理
【4月更文挑战第30天】Go语言,由Google开发,是一种静态强类型、编译型、并发型语言,具有垃圾回收功能,常用于云计算、微服务、区块链等领域。本文聚焦Go中的指针和内存管理。指针表示变量内存地址,可用于直接访问和修改变量,如示例代码所示。指针运算有限制,仅支持相同类型变量和数组元素访问。内存管理由Go运行时的垃圾回收机制处理,自动回收无引用对象,简化管理但引入性能开销。可通过`runtime.GC()`手动触发垃圾回收。
|
19小时前
|
编解码 JavaScript 前端开发
【专栏】介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例
【4月更文挑战第29天】本文介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例。Base64编码将24位二进制数据转换为32位可打印字符,用“=”作填充。文中展示了各语言的编码解码代码,帮助开发者理解并应用于实际项目。
|
19小时前
|
Java Go
Golang深入浅出之-Go语言指针面试必知:理解与使用指针
【4月更文挑战第21天】Go语言中的指针允许直接操作内存,常用于高效数据共享和传递。本文介绍了指针的基础知识,如声明、初始化和解引用,以及作为函数参数使用。此外,讨论了`new()`与`make()`的区别和内存逃逸分析。在结构体上下文中,指针用于减少复制开销和直接修改对象。理解指针与内存管理、结构体的关系及常见易错点,对于面试和编写高性能Go代码至关重要。
19 2
|
19小时前
|
C语言
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
|
19小时前
|
存储 程序员 编译器
爱上C语言:指针很难?来来来,看看这篇(基础篇)
爱上C语言:指针很难?来来来,看看这篇(基础篇)
|
19小时前
|
C语言
c语言指针总结
c语言指针总结
15 1

热门文章

最新文章