设为首页 - 加入收藏  
您的当前位置:首页 >数据库 >GO语言培训之面试题(一) 正文

GO语言培训之面试题(一)

来源:亿华互联编辑:数据库时间:2025-11-05 12:47:31

  GO语言面试题有哪些?培训GO语言基本面试题包含什么?下面老男孩教育为大家罗列了22道面试题,我们一起来看看吧。试题

  1、培训下面属于关键字的试题是()

  A. funcB. defC. structD. class

  参考答案:AC

  2、定义一个包内全局字符串变量,培训下面语法正确的试题是 ()

  A. var str stringB. str := ""C. str = ""D. var str = ""

  参考答案:AD

  3、通过指针变量 p 访问其成员变量 name,培训下面语法正确的试题是()

  A. p.nameB. (*p).nameC. (&p).nameD. p->name

  参考答案:AB

  4、关于接口和类的培训说法,下面说法正确的试题是()

  A. 一个类只需要实现了接口要求的所有函数,我们就说这个类实现了该接口B. 实现类的培训时候,只需要关心自己应该提供哪些方法,试题不用再纠结接口需要拆得多细才合理C. 类实现接口时,培训需要导入接口所在的试题包D. 接口由使用方按自身需求来定义,使用方无需关心是培训否有其他模块定义过类似的接口

  参考答案:ABD

  5、关于字符串连接,下面语法正确的是()

  A. str := ‘abc’ + ‘123’B. str := "abc" + "123"C. str := 123 + "abc"D. fmt.Sprintf("abc%d", 123)

  参考答案:BD

  6、关于协程,免费信息发布网下面说法正确是()

  A. 协程和线程都可以实现程序的并发执行B. 线程比协程更轻量级C. 协程不存在死锁问题D. 通过channel来进行协程间的通信

  参考答案:AD

  7、关于循环语句,下面说法正确的有()

  A. 循环语句既支持for关键字,也支持while和do-whileB. 关键字for的基本使用方法与C/C++中没有任何差异C. for循环支持continue和break来控制循环,但是它提供了一个更高级的break,可以选择中断哪一个循环D. for循环不支持以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量

  参考答案:CD

  8、对于函数定义:

  func add(args ...int) int { sum := 0 for _, arg := range args { sum += arg } return sum}

  下面对add函数调用正确的是()

  A. add(1, 2)B. add(1, 3, 7)C. add([]int{1, 2})D. add([]int{1, 3, 7}...)

  参考答案:ABD

  9、关于类型转化,下面语法正确的是()

  A.type MyInt intvar i int = 1var j MyInt = iB.type MyInt intvar i int = 1var j MyInt = (MyInt)iC.type MyInt intvar i int = 1var j MyInt = MyInt(i)D.type MyInt intvar i int = 1var j MyInt = i.(MyInt)

  参考答案:C

  10、关于局部变量的初始化,下面正确的使用方式是()

  A. var i int = 10B. var i = 10C. i := 10D. i = 10

  参考答案:ABC

  11、关于const常量定义,下面正确的使用方式是()

  A.const Pi float64 = 3.14159265358979323846const zero = 0.0B.const ( size int64 = 1024 eof = -1 )C.const ( ERR_ELEM_EXIST error = errors.New("element already exists") ERR_ELEM_NT_EXIST error = errors.New("element not exists"))D.const u, v float32 = 0, 3 const a, b, c = 3, 4, "foo"

  参考答案:ABD

  12、关于布尔变量b的服务器租用赋值,下面错误的用法是()

  A. b = trueB. b = 1C. b = bool(1)D. b = (1 == 2)

  参考答案:BC

  13、关于switch语句,下面说法正确的有()

  A. 条件表达式必须为常量或者整数B. 单个case中,可以出现多个结果选项C. 需要用break来明确退出一个caseD. 只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case

  参考答案:BD

  14、关于main函数(可执行程序的执行起点),下面说法正确的是()

  A. main函数不能带参数B. main函数不能定义返回值C. main函数所在的包必须为main包D. main函数中可以使用flag包来获取和解析命令行参数

  参考答案:ABCD

  15、对于局部变量整型切片x的赋值,下面定义正确的是()

  A.x := []int{ 1, 2, 3, 4, 5, 6,}B.x := []int{ 1, 2, 3, 4, 5, 6}C.x := []int{ 1, 2, 3, 4, 5, 6}D.x := []int{1, 2, 3, 4, 5, 6,}

  参考答案:ACD

  16、关于变量的自增和自减操作,下面语句正确的是()

  A.i := 1i++B.i := 1j = i++C.i := 1++iD.i := 1i--

  参考答案:AD

  17、关于channel,下面语法正确的是()

  A. var ch chan intB. ch := make(chan int)C. <- chD. ch <-

  参考答案:ABC

  18、关于同步锁,下面说法正确的是云服务器提供商()

  A. 当一个goroutine获得了Mutex后,其他goroutine就只能乖乖的等待,除非该goroutine释放这个MutexB. RWMutex在读锁占用的情况下,会阻止写,但不阻止读C. RWMutex在写锁占用情况下,会阻止任何其他goroutine(无论读和写)进来,整个锁相当于由该goroutine独占D. Lock()操作需要保证有Unlock()或RUnlock()调用与之对应

  参考答案:ABC

  19、flag是bool型变量,下面if表达式符合编码规范的是()

  A. if flag == 1B. if flagC. if flag == falseD. if !flag

  参考答案:BD

  20、value是整型变量,下面if表达式符合编码规范的是()

  A. if value == 0B. if valueC. if value != 0D. if !value

  参考答案:AC

  21、关于select机制,下面说法正确的是()

  A. select机制用来处理异步IO问题B. select机制最大的一条限制就是每个case语句里必须是一个IO操作C. golang在语言级别支持select关键字D. select关键字的用法与switch语句非常类似,后面要带判断条件

  参考答案:ABC

  22、关于内存泄露,下面说法正确的是()

  A. golang有自动垃圾回收,不存在内存泄露B. golang中检测内存泄露主要依靠的是pprof包C. 内存泄露可以在编译阶段发现D. 应定期使用浏览器来查看系统的实时内存信息,及时发现内存泄露问题

  参考答案:BD

上一篇:金立V580性能优异,深受用户喜爱(一款高性能配置的手机,满足用户多方面需求)
下一篇:最近想修改一下Wordpress的模板,所以还是要在本地建一个LAMP环境调试比较方便,简单记录一下,给需要的朋友做个参考。其实在本站有许多关于在Ubuntu Linux下搭建LAMP服务器的相关资料,这次推出面向新手的在Ubuntu 9.10下搭建LAMP服务器安装WordPress 网络信息发布平台。近些时间我们又推出了关于Ubuntu 9.10系统的详细安装教程。对于不少初入Linux的来说Ubuntu系统应用已经很熟练,并且Linux系统也被越来越多的个体或企业应用,但是Linux系统相对Windows系统的全面普及还需等待时日。先来看看装好的效果图。(见图1)图1安装LAMP我们简单介绍利用命令安装Apache,具体安装命令如下所示(见图2):图2sudo apt-get install apache2安装PHP支持(见图3)图3 sudo apt-get install libapache2-mod-php5 php5安装mysql-server与mysql-admin(见图4)图4  sudo apt-get install mysql-server-5.0 mysql-common mysql-admin linuxidc@linuxidc-laptop:~$ sudo apt-get install mysql-server-5.0 mysql-common mysql-adminmysql-common 已经是最新的版本了。mysql-common 被设置为手动安装。将会安装下列额外的软件包: libdbd-mysql-perl libdbi-perl libgtkhtml3.8-15 libhtml-template-perl libnet-daemon-perl libplrpc-perl mysql-client-5.0 mysql-gui-tools-common mysql-query-browser mysql-server-core-5.0建议安装的软件包: dbishell libgtkhtml3.8-dbg libipc-sharedcache-perl mysql-doc-5.0 tinyca mailx下列【新】软件包将被安装: libdbd-mysql-perl libdbi-perl libgtkhtml3.8-15 libhtml-template-perl libnet-daemon-perl libplrpc-perl mysql-admin mysql-client-5.0 mysql-gui-tools-common mysql-query-browser mysql-server-5.0 mysql-server-core-5.0共升级了 0 个软件包,新安装了 12 个软件包,要卸载 0 个软件包,有 0 个软件未被升级。需要下载 39.8MB 的软件包。解压缩后会消耗掉 123MB 的额外空间。您希望继续执行吗?[Y/n]下面是安装过程中设置MySQL的用户名与密码(见图4-5)。图4图5安装好后可以以图形的界面打开(见图6) 图6补充下:在图6之前,好像还要安装的(见图7)sudo apt-get install php5-mysql图7linuxidc@linuxidc-laptop:~$ sudo apt-get install php5-mysql[sudo] password for linuxidc: 正在读取软件包列表… 完成正在分析软件包的依赖关系树       正在读取状态信息… 完成       下列【新】软件包将被安装: php5-mysql共升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 0 个软件未被升级。需要下载 65.9kB 的软件包。解压缩后会消耗掉 246kB 的额外空间。获取:1 http://cn.archive.Ubuntu.com jaunty-updates/main php5-mysql 5.2.6.dfsg.1-3ubuntu4.1 [65.9kB]下载 65.9kB,耗时 4s (13.8kB/s)        选中了曾被取消选择的软件包 php5-mysql。(正在读取数据库 … 系统当前总共安装有 113808 个文件和目录。)正在解压缩 php5-mysql (从 …/php5-mysql_5.2.6.dfsg.1-3Ubuntu4.1_i386.deb) …正在设置 php5-mysql (5.2.6.dfsg.1-3Ubuntu4.1) …第一次运行用root登录不需要密码。可以进去后添加用户同时修改root密码。图8图9然后点击Catalogs,在下面的Schemata里面新建一个数据库。(见图9-10)图9图10 然后进入User Administrator,在新建的User上选Schema Privileges,赋予其对该数据库操作的权限。(见图11-12)启动apache2和mysql server(见图13)sudo /etc/init.d/mysql start;sudo /etc/init.d/apache2 start图13下载Wordpress(http://wordpress.org/latest.tar.gz见图14),解压缩,放到linuxidc /var/www的目录里,修改权限。(见图15-16) 图14图15图16重新启动apache2(见图17)图17修改wp-config-sample.php文件(见图18)sudo gedit /var/www/linuxidc/wp-config-sample.phpsudo gvim wp-config-sample.php主要是前面三个define(DB_NAME, putyourdbnamehere);/** MySQL database username */define(DB_USER, usernamehere);/** MySQL database password */define(DB_PASSWORD, yourpasswordhere);define(DB_NAME, wordpress);    // The name of the databasedefine(DB_USER, username);     // Your MySQL usernamedefine(DB_PASSWORD, password); // …and password修改成刚才建立的数据库名称,用户名和密码。 然后运行sudo mv wp-config.php /var/www/linuxidc/sudo mv wp-config-sample.php wp-config.php现在进入入http://127.0.0.1/linuxidc/  (见图19)图18图19发一篇文章试下,OK,效果见图1。图22总结:虽然对于Ubuntu系统的玩家来说,关于Ubuntu系统下LAMP安装相对初学者来说很简单,其实总结起来就是对Apache、Mysql、PHP等Windows下常用的几款软件换平台安装,但对于Ubuntu系统的初学者来说,搭建Lamp环境可能并不是很容易实现。笔者在这里通过图文的形式来讲解每个部分的具体操作,从而确保初学者能够从中有所收获。可以输入命令 : sudo apt-get install chmsee 还有 Firefox 有个插件叫做 CHM Reader ,你可以到 Firefox 的官网上去查找安装,之后就可以查看 CHM 文档了随着互联网的普及,很多公司在各地的分公司都经常需要通过互联网共享或传输一些重要的数据或文件。在网络安全问题日益突出的今天,如何保证Ubuntu系统的数据在传输过程中的安全性呢?本文为大家讲解在Ubuntu系统中如何对文件进行加密传输。 本文介绍基于Ubuntu Desktop 9.10(i386),采用GNOME集成桌面环境。并设定有两台安装了Ubuntu 9.10桌面版系统的计算机Host1和Host2,都安装了OpenSSH软件包且具有相同的用户账号(为叙述方便,用户名和密码相同)。 准备工作:安装Seahorse密钥管理器插件 默认情况下,Ubuntu 9.10 GNOME集成桌面环境软件没有自带Seahorse密钥管理器插件(seahorse-plugins),因此在Nautilus(鹦鹉螺)文件浏览器中,选中某个文件并点击鼠标右键后,在弹出的快捷菜单中看不到“加密”与“签署”两个选项,从而无法通过图形化的界面(该插件集成在Nautilus文件浏览器中)来对文件进行加密或签署操作。 为此,我们可以使用“apt-get”命令或“新立得软件包管理器”来手动安装该插件。这里以使用命令行方式来安装为例。依次点击菜单“应用程序→附件→终端”,打开GNOME终端窗口后输入如下命令:“sudo apt-get install seahorse-plugins”,命令执行后即可下载并安装“seahorse-plugins”软件包。安装完成后,从当前系统注销并重新登录,即可在上文所述的快捷菜单中看到“加密”和“签署”两项。 步骤一、在Host1中创建本地用户密钥 依次点击菜单“应用程序→附件→密码和加密密钥”运行Seahorse密钥管理程序。在出现的“密码和加密密钥”窗口中,点击菜单“文件→新建”,则出现“新建”密钥对话框。因为大家要加密的是文件,因此根据说明,选择创建的密钥的类型为“PGP密钥”并点击“继续”按钮进入“新建PGP密钥”对话框。在创建密钥时,需要指定用户的个人信息,如用户名、电子邮件等以及指定加密类型和密钥保密强度等。填写完成后点击“创建”按钮,并输入密钥保护密码后即可创建用户密钥。 步骤二、分发公钥给Host2用户 首先,利用Seahorse密钥管理器导出刚刚创建的公钥。依次点击“密钥和加密密码”窗口中的“文件→导出”,将公钥导出后点击“保存”按钮,则在当前登录用户(testuser)的目录下生成公钥文件“testuser.asc”。接下来,我们将公钥文件传送到Host2主机中(这里以使用“scp”命令为例)。 在Host1上打开一个GNOME终端窗口,输入命令“scp testuser.Asc testuser@Host2:~/.”,执行后首先输入“y”来加入主机Host2到信任主机列表中,再输入Host2上的用户“testuser”的密码,通过后则将Host1上的“testuser.asc”文件复制到Host2主机的testuser用户目录下(/home/testuser)。Host2上的用户接收到密钥文件后,在Seahorse密钥管理器中点击“密钥和加密密码”窗口中的“文件→导入”,在当前登录用户目录下找到文件“testuser.asc”并打开,即可完成导入。 步骤三、Host2用户加密待发文件 有了Host1用户的公钥,在Host2上就可以使用它来对文件进行加密了。在Nautilus文件浏览器中,鼠标右键点击待加密文件,在弹出的快捷菜单中选择“加密”项,则弹出“选择收件人”对话框(如图3所示)。在密钥列表中将自动列出当前系统中的可用密钥,选定刚刚导入的Host1用户的公钥,并勾选其前的方框,点击“确定”按钮,则开始对文件进行加密,并生成“.pgp”文件名结尾的加盟文件(如“abc.pgp”)。 同样,使用“scp”命令将加密后的文件传送到Host1中“scp abc.pgp testuser@Host1:~/.”。 步骤四、Host1用户解密收到的文件 Host1上的用户接收到Host2用户传过来的加密文件后,在Nautilus文件浏览器中鼠标右键点击该文件,在弹出的快捷菜单中选择“使用解密文件打开”,按要求输入密钥保护密码后,程序将使用用户的私钥对文件进行解密,并在当前目录下生成解密后的文件,也就是还原出来Host2用户加密过的文件。 现在需要通过因特网进行远程文件传输的操作已经非常多,而为了保障数据安全,对数据进行加密已经是很切实的应用需求。看过本文,相信大家对于在Ubuntu当中进行加密、解密操作已经有了初步的了解,在今后的应用过程中,大家不妨亲自尝试,以提高数据传输的安全性。ubuntu连接windows

相关推荐:

最新文章

4.8271s , 11713.84375 kb

Copyright © 2025 Powered by GO语言培训之面试题(一),亿华互联  滇ICP备2023000592号-16

sitemap

Top