首页 > 其他分享 >Golang基础-Basics

Golang基础-Basics

时间:2023-02-18 13:12:04浏览次数:41  
标签:Basics const 常量 int 基础 Golang time numberOfLayers 函数

Packages

Go语言中的包和其他语言的库或模块的概念类似,目的都是为了支持模块化、封装、单独编译和代码重用。一个包的源代码保存在一个或多个以.go为文件后缀名的源文件中,通常一个包所在目录路径的后缀是包的导入路径;例如包gopl.io/ch1/helloworld对应的目录路径是 $GOPATH/src/gopl.io/ch1/helloworld。
每个包都对应一个独立的名字空间。例如,在image包中的Decode函数和在unicode/utf16包 中的Decode函数是不同的。要在外部引用该函数,必须显式使用image.Decode或 utf16.Decode形式访问。
包还可以让我们通过控制哪些名字是外部可见的来隐藏内部实现信息。在Go语言中,一个简单的规则是:如果一个名字是大写字母开头的,那么该名字是导出的(译注:因为汉字不区分大小写,因此汉字开头的名字是没有导出的)。
引入自己写的包的流程:

  1. 打开 GO111MODULE="on"
  2. 在目录下运行 go mod init moduleName
  3. 在目录下运行 go mod tidy
  4. import "moduleName/packagePath"

包内的函数名首字母要大写才能被别的包调用。结构体内的成员也是大写才是公有的,可见的

Variables

var explicit int // Explicitly typed
implicit := 10   // Implicitly typed as an int
count := 1 // Assign initial value
count = 2  // Update to new value
count = false // This throws a compiler error due to assigning a non `int` type

Constants

常量表达式的值在编译期计算,而不是在运行期。每种常量的潜在类型都是基础类型:boolean、string或数字。
一个常量的声明语句定义了常量的名字,和变量的声明语法类似,常量的值不可修改,这样可以防止在运行期被意外或恶意的修改。
一个常量的声明也可以包含一个类型和一个值,但是如果没有显式指明类型,那么将从右边的表达式推断类型。

const Age = 21 // Defines a numeric constant 'Age' with the value of 21
const (
    e = 2.71828182845904523536028747135266249775724709369995957496696763
    pi = 3.14159265358979323846264338327950288419716939937510582097494459
)
const noDelay time.Duration = 0

Functions

函数声明包括函数名、形式参数列表、返回值列表(可省略)以及函数体。
返回值列表可以是只说明返回值类型,也可以是指明返回值变量名,这样只需写一个return。

func name(parameter-list) (result-list) {
    body
}

Exercise

package lasagna

// TODO: define the 'OvenTime' constant
const OvenTime = 40

// RemainingOvenTime returns the remaining minutes based on the `actual` minutes already in the oven.
func RemainingOvenTime(actualMinutesInOven int) int {
    return OvenTime - actualMinutesInOven
}

// PreparationTime calculates the time needed to prepare the lasagna based on the amount of layers.
func PreparationTime(numberOfLayers int) int {
    return 2 * numberOfLayers
}

// ElapsedTime calculates the time elapsed cooking the lasagna. This time includes the preparation time and the time the lasagna is baking in the oven.
func ElapsedTime(numberOfLayers, actualMinutesInOven int) int {
    return 2*numberOfLayers + actualMinutesInOven
}

标签:Basics,const,常量,int,基础,Golang,time,numberOfLayers,函数
From: https://www.cnblogs.com/roadwide/p/17132380.html

相关文章

  • 事务基础知识与执行计划
    事务基础知识数据库事务的概念数据库事务是什么?事务是一组原子性的SQL操作。事务由事务开始与事务结束之间执行的全部数据库操作组成。A(原子性)、(C一致性)、I(隔离性)、D(持......
  • golang流程控制if,switch分支
    if分支if单分支if条件表达式{逻辑代码}packagemainimport"fmt"funcmain(){ //varaint=9 //ifa<10{//判断a《10位true,所以为执行下面的打印a的......
  • Edgio赞助OWASP ModSecurity CRS,进一步推动以OWASP核心规则集为基础的高级应用安全发
    亚利桑那州凤凰城,2023年2月2日—EdgioInc.(纳斯达克:EGIO),作为以速度、安全性和易用性著称的首选平台,Edgio今天宣布成为开放网络应用安全项目(OWASP)下,ModSecurity核心规则集......
  • 网络基础阶段测试
     1下面哪两种是服务提供商提供的企业级lnternet接入技术? A.租用线 B.宽带有限电脑 C.城域以太网 D.移动服务 E.蜂窝 正确答案:AC2什么是融合网络? A.混合......
  • 有关交换技术基础题目
    第二单元交换技术基础交换机采用无碎片直通转发方式时,对到来的数据帧前多少字节进行分析就开始转发?A.6字节B.12字节C.8字节D.64字节正确答案:D交换机依据以下哪一个......
  • 有关网络基础题目
    第一单元网络基础管理员使用SecureCRT同时使用telnet登录多个网络设备进行管理,此时承载telnet数据的TCP协议,是通过()来区分不同的连接的。A.IP地址B.端口号C.IP地址和端口......
  • 62-CICD持续集成工具-Jenkins构建Golang的web项目
    实现Golang应用源码编译并部署安装Golang环境#编译安装[root@jenkins~]#catinstall_go.sh#!/bin/bashGO_VERSION=1.18.4URL=https://studygolang.com/dl/golang/go${......
  • 【编程基础之Python】5、安装Python第三方模块
    (【编程基础之Python】5、安装Python第三方模块)安装Python第三方模块为什么需要安装第三方模块Python具有很强的可扩展性,它不是把所有功能特性都集中到语言核心,而是提供......
  • 初识Linux(十七)------ 基础系统设置与备份策略
      新的CentOS7有针对不同的服务提供了相当大量的命令行设置模式,而过去那个setup似乎没用了。取而代之的是bash-complete提供了不少参数补全的设置工具,甚至包括网......
  • 属性-Yii 基础-深入理解YII2.0(1.1)
    属性(Property)属性用于表征类的状态,从访问的形式上看,属性与成员变量没有区别。你能一眼看出​​$object->foo​​中的foo是成员变量还是属性么?显然不行。但是,成员变......