台湾治疗白癜风最好的医院 http://baidianfeng.39.net/a_bdfzyyq/131118/4292570.html没有任何一种编程语言说自己能够适应所有的开发环境和需求的,所有才有了不同的编程语言的出现,而今天我们就通过案例分析来了解一下,go语言编程都有哪些不足之处。
没有泛型
这个问题就像房间里的大象一样,是显而易见而又被忽略的事实。Go语言没有泛型。对于来自使用Java这样的语言的开发者来说,要转向Go语言,这是一个需要克服的巨大障碍。这意味着代码的重用级别降低了。虽然Go语言有头等函数,但如果编写“map”、“reduce”和“filter”等函数,将这些函数设计为对一种类型的集合进行操作,就不能将这些函数重用于其他不同的类型集合。要解决这一问题有很多方法,但都终都要涉及到编写更多的代码,如此一来,生产力和可维护性就降低了。
接口是隐式的
虽然有接口这一点很好,但是结构却是隐式地而非显式地实现接口。这点被称为是Go语言的优势之一,但我们发现,很难从结构中看出它是否实现了接口。你只能通过尝试编译程序才能真正了解。如果程序很小,这当然没有什么问题。但如果这个程序是中大型规模,麻烦就大了。
库支持不佳
Go语言的库支持参差不齐。我们的API与Contentful集成,但后者并没有官方支持的GoSDK。这意味着我们必须编写(并维护!)大量代码来请求和解析Contentful中的数据。我们还必须依赖三方的Elasticsearch库。由厂商提供的GoSDK并不像他们的Java、Ruby或JavaScript同类产品那样受欢迎。