ARM技术william hill官网
直播中

刘勇

7年用户 1354经验值
私信 关注
[资料]

一个神秘现象引发对beego框架的思考

1、beego框架的分析

  小强最近在项目中遇到了一个很奇怪的问题:在整改日志规范时,为了避免影响现有的代码结构以及改动尽可能小的前提下,在调用记日志的SDK处将某一个字段值首字母改为大写,代码示例如下:

  fmt.Println(“--------SayHello begin------------”)

  //项目中这里的a实际是作为参数传入,只是可能为空串,不为空串,这样写肯定没问题

  a := “”

  b := strings.ToUpper(a[:1]) + a[1:]

  fmt.Println(“b is ”, b)

  fmt.Println(“--------SayHello end------------”)

  this.Ctx.Output.Body(this.Ctx.Input.RequestBody)

  项目中这里的a变量其实是作为参数传入,只是可能为空串。a变量不为空串时,这样写肯定没问题。但是当为空串时,即“”时,就会出问题,在java中,运行的时候肯定会报一个“数组下表越界”的异常。小强将工程编译后生成二进制文件,放到服务器上跑,测试修改后的日志是否符合规范,验了一遍,没有问题,然后就将代码提交了。

1.jpg

原作者:小碗汤

更多回帖

发帖
×
20
完善资料,
赚取积分