GO面试题系列

news2024/11/18 19:33:52
1.GO有哪些关键字
2.GO有哪些数据类型
3.Go方法与函数的区别

在Go语言中,方法和函数是两个不同的概念,尽管它们在某些方面有相似之处。下面是它们的主要区别:

  1. 定义位置:
    • 函数: 函数是独立声明的,它们不依赖于任何类型。函数声明通常是在包级别的,也可以在其他函数内声明。
    • 方法: 方法是与特定类型关联的函数。它们是在类型的定义中声明的,因此它们被称为该类型的方法。
      // 函数
      func add(a, b int) int {
          return a + b
      }
      
      // 方法
      type Calculator struct {
          Result int
      }
      
      func (c *Calculator) Add(a, b int) {
          c.Result = a + b
      }
      
  2. 调用方式:
    • 函数: 函数可以直接调用,不需要通过特定的类型。
    • 方法: 方法是通过特定类型的实例来调用的。
// 函数调用
result := add(2, 3)

// 方法调用
calc := Calculator{}
calc.Add(2, 3)

3.关联的数据:

  • 方法: 方法是与特定类型相关联的,可以访问该类型的数据。

  • 函数: 函数是独立的,不依赖于任何特定的数据结构。
// 函数没有关联的数据
func printMessage(message string) {
    fmt.Println(message)
}

// 方法关联了Calculator类型的数据
func (c *Calculator) PrintResult() {
    fmt.Println(c.Result)
}

  1. 4.语法:
    • 函数: 函数的声明没有接收者(receiver)。
    • 方法: 方法的声明包含一个接收者,它指定了方法与哪种类型相关联。
      // 函数声明
      func add(a, b int) int {
          return a + b
      }
      
      // 方法声明
      func (c *Calculator) Add(a, b int) {
          c.Result = a + b
      }
      

总体而言,方法是一种特殊类型的函数,它们与某种数据类型关联。这种关联使得方法更容易访问和操作与其关联的数据。

5.Go函数返回局部变量的指针是否安全
6.Go函数参数传递到底是值传递还是引用传递

7.Go defer关键字的实现原理

8.Go内置函数make和new的区别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1298546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vulnhub靶机Phineas

下载地址:https://download.vulnhub.com/phineas/Phineas.ova 主机发现 目标154 端口扫描 端口服务扫描 漏洞扫描 直接访问web 初始页面,我就不信没东西,开扫! 访问一下 访问fuel时候发现url变化了 只能进行拼接url那就试一下凭借…

【C/C++笔试练习】多态的概念、虚函数的概念、虚表地址、派生类的虚函数、虚函数的访问、指针引用、动态多态、完全数计算、扑克牌大小

文章目录 C/C笔试练习选择部分(1)多态的概念(2)虚函数的概念(3)虚表地址(4)派生类的虚函数(5)虚函数的访问(6)分析程序(7&…

树莓派CSI摄像头在新系统(23年12月)中的不用设置了,没有开关,也没有raspistill

网上都是老信息,用的raspistill命令,至少新系统没有这个东西了,也不会在sudo raspi-config里面也没有摄像头的开关了。 ls /dev/video* 能看到摄像头video0,但是vcgencmd get_camera supported0, detected0&#xff0…

IEEE期刊论文模板

一、模板下载 1、登陆IEEE作者中心Author Center 地址:Publish with IEEE Journals - IEEE Author Center Journals 2、点击“Download a template” 3、在弹出的模板下载页面点击IEEE模板选择器“IEEE Template Selector” 4、在弹出的模板选择器页面点击“Tran…

积分商城小程序源码

商城小程序核心功能模块商城、积分商城、二级分销。php开发语言,有成品源码,支持二开,定制开发。 一 商城 商品分类,在线选择规格,加入购物车,在线下单支付,管理我的订单。 二 积分商城 在商…

C++初阶-string类的模拟实现

string类的模拟实现 一、经典的string类问题1.1 构造函数1.1.1 全缺省的构造函数 2.1 拷贝构造3.1 赋值4.1 析构函数5.1 c_str6.1 operator[]7.1 size8.1 capacity9.1 比较(ASCII)大小10.1 resize11.1 reserve12.1 push_back(尾插字符)13.1 append(尾插字…

二叉树的锯齿形层序遍历[中等]

优质博文:IT-BLOG-CN 一、题目 给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 示例 1: 输…

优化 | 用CVXPY手搓一个SVM

支持向量机(Support Vector Machine,SVM)是一种常用的机器学习算法,用于分类和回归问题。SVM的基本思想是寻找一个最优的超平面,将不同类别的数据样本分隔开来。设样本点为 ( x i , y i ) ( i 1 , ⋯ , n ) (x_i,y_i…

排序算法---冒泡排序

1. 原理 对数组进行遍历,每次对相邻的两个元素进行比较,如果大的在前面,则交换两个元素的位置,完成一趟遍历后,数组中最大的数值到了数组的末尾。再对前面n-1个数值进行相同的遍历。一共完成n-1趟遍历就实现了排序。 1…

分享下我发现的16个AI辅助编程的网站

这些工具和服务覆盖了多个方面,包括编程辅助、代码生成、问题解决、Git指令辅助、代码安全扫描等,为开发者提供了丰富的选择。 Codegeex (codegeex.cn/zh-CN): 类型:AI编程助手支持语言:Python, C/C, Java, Go, JavaScript等特点…

docke网络之bridge、host、none

一、bridge网络 1.创建一个测试容器 [rootlocalhost ~]# docker run -d -it --name busybox_1 busybox /bin/sh -c "while true;do sleep 3600;done" 03b308c847edd23f21ba69afb825d92f7aaeb05b1ff4431dd47ccee439a0361a 2.查看当前机器docker有哪些网络 [rootlocal…

获取类class对象的方式

一、什么是class对象 Class类位于java核心包lang包中,它是反射的源头。Class对象用于记录每个类的运行时数据结构,或者说是在内存中访问类的静态数据的接口,每个类都有一个唯一的Class对象。Class对象不能直接通过new来获取,因为…

空中消防员:无人机森林防火应用全面升级

森林是生态系统的重要组成部分,也是人类得以生存的关键。我国森林面积广大,存在火灾频发的困境。提升森林火灾防控能力是维护生态平衡、保护资源和保障人民生命安全的必要步骤。随着无人机技术的发展,其在无人机森林防火中的应用为传统巡查工…

temu发货单在哪里打印

在Temu平台上,打印发货单是进行订单发货的重要步骤之一。通过打印发货单,您可以方便地记录订单信息并与物流公司进行配合。以下是在Temu平台上打印发货单的详细步骤和注意事项。 先给大家推荐一款拼多多/temu运营工具——多多情报通 多多情报通是拼多多…

Chart 8 内核优化

文章目录 前言8.1 内核融合和拆分8.2 编译选项8.3 Conformant(规范) vs. fast vs. native math functions8.4 Loop unrolling8.5 避免分支发散8.6 Handle image boundaries8.7 Avoid the use of size_t8.8 通用 vs. 具名内存地址空间8.9 Subgroup8.10 Us…

C++ 哈希表实现

目录 前言 一、什么是哈希表 二、直接定值法 三、开放定值法(闭散列) 1.开放定制法定义 2.开放定制法实现 2.1类的参数 2.2类的构造 2.3查找实现 2.4插入实现 2.5删除实现 2.6string做key 四、哈希桶(开散列) 1.开散…

让老板成为数据分析师,我用 ChatGpt 链接本地数据源实战测试

本文探究 ChatGpt 等AI机器人能否帮助老板快速的做数据分析?用自然语言同老板进行沟通,满足老板的所有数据分析的诉求? 一、背景 设想这样一个场景:你是某贸易公司的老板,公司所有的日常运转数据都在私域的进销存系统…

tqdm详细教程,实现tqdm进度条完美设计;解决进度条多行一直刷新的问题;如何使得滚动条不上下滚动(保持一行内滚动)

一、tqdm简介 tqdm是一个python进度条库,可以在 Python长循环中添加一个进度提示信息。 二、3种使用方法 1.tqdm(range)-自动更新 import time from tqdm import range# 自动更新 for i in tqdm(range(10)): # 共可以更新10次进度条time. Sleep(0.5) # 每次更新间…

nginx多端口部署

1.配置nginx.conf文件 有几个端口需要部署就写几个server,我这里只部署了两个端口分别为80和81端口,所以有两个server文件。80端口项目入口在根目录的test文件中,81端口项目入口在根目录的test1文件夹中。 2.准备项目文件html文件 在/test1…

2023年终总结-轻舟已过万重山

自我介绍 高考大省的读书人 白,陇西布衣,流落楚、汉。-与韩荆州书 我来自孔孟故里山东济宁,也许是小学时的某一天,我第一次接触到了电脑,从此对它产生了强烈的兴趣,高中我有一个愿望:成为一名计…