zoukankan      html  css  js  c++  java
  • Go 语言自问自答二

    • 01 = 和 := 的区别?
      •   = 是赋值, := 是声明变量并赋值。
    • 02 指针的作用
      • Go 有指针,但是没有指针运算;Golang提供了指针用于操作数据内存,并通过引用来修改变量;
      • 只声明未赋值的变量,golang都会自动为其初始化为零值,基础数据类型的零值比较简单,引用类型和指针的零值都为nil,nil类型不能直接赋值,因此需要通过new开辟一个内存,或者通过make初始化数据类型,或者两者配合,然后才能赋值。
        指针也是一种类型,不同于一般类型,指针的值是地址,这个地址指向其他的内存,通过指针可以读取其所指向的地址所存储的值。
        函数方法的接受者,也可以是指针变量。无论普通接受者还是指针接受者都会被拷贝传入方法中,不同在于拷贝的指针,其指向的地方都一样,只是其自身的地址不一样。

    • 03 Go 允许多个返回值吗?
      • 允许
    • 04 Go 有异常类型吗?
      • go中没有 try catch这种异常,但是go的错误和异常会作为返回值 返回,正常情况 返回一个nil;当返回的错误值不是nil时,我们可以通过调用error接口类型的Error方法来获得字符串类型的错误信息。在处理错误返回值的时候,没有错误的返回值最好直接写为nil
      • 检查某个子函数是否失败后,我们通常将处理失败的逻辑代码放在处理成功的代码之前。如果某个错误会导致函数返回,那么成功时的逻辑代码不应放在else语句块中,而应直接放在函数体中。
      • https://chai2010.cn/advanced-go-programming-book/ch1-basic/ch1-07-error-and-panic.html
    • 05 什么是协程(Goroutine)
      • 编译器会在调用函数前插入 runtime.morestack
        1. Go 语言运行时会在垃圾回收暂停程序、系统监控发现 Goroutine 运行超过 10ms 时发出抢占请求 StackPreempt
        2. 当发生函数调用时,可能会执行编译器插入的 runtime.morestack,它调用的 runtime.newstack 会检查 Goroutine 的 stackguard0 字段是否为 StackPreempt
        3. 如果 stackguard0 是 StackPreempt,就会触发抢占让出当前线程;
      •   https://draveness.me/golang/docs/part3-runtime/ch06-concurrency/golang-goroutine/
    • 06 如何高效地拼接字符串
    • 07 什么是 rune 类型
    • 08 如何判断 map 中是否包含某个 key ?
    • 09 Go 支持默认参数或可选参数吗?
    • 10 defer 的执行顺序
    • 11 如何交换 2 个变量的值?
    • 12 Go 语言 tag 的用处?
    • 13 如何判断 2 个字符串切片(slice) 是相等的?
    • 14 字符串打印时,%v 和 %+v 的区别
    • 15 Go 语言中如何表示枚举值(enums)?
    • 16 空 struct{} 的用途
    • 01 init() 函数是什么时候执行的?
    • 02 Go 语言的局部变量分配在栈上还是堆上?
    • 03 2 个 interface 可以比较吗 ?
    • 04 2 个 nil 可能不相等吗?
    • 05 简述 Go 语言GC(垃圾回收)的工作原理
    • 06 函数返回局部变量的指针是否安全?
    • 07 非接口非接口的任意类型 T() 都能够调用 *T 的方法吗?反过来呢?
    • 01 无缓冲的 channel 和有缓冲的 channel 的区别?
    • 02 什么是协程泄露(Goroutine Leak)?
    • 03 Go 可以限制运行时操作系统线程的数量吗?

    https://blog.csdn.net/caoshiminYQS/article/details/100415466

    https://studygolang.com/articles/11627   协程实现原理

  • 相关阅读:
    bzoj 3944 Sum
    [BZOJ2693]jzptab
    luogu 3768 简单的数学题
    [ZJOI2015]幻想乡战略游戏
    [SDOI2017]数字表格
    [ZJOI2007]Hide 捉迷藏
    [SDOI2016]游戏
    [SPOJ10707]Count on a tree II
    [Luogu4177][CEOI2008]order
    [BZOJ4491]我也不知道题目名字是什么
  • 原文地址:https://www.cnblogs.com/tgzmos/p/14659604.html
Copyright © 2011-2022 走看看