【发布时间】:2015-11-06 23:35:07
【问题描述】:
我查看了一些 Elixir 项目,看到了这样的代码:
value = Dict.get(options, :key)
有没有办法让它更短并利用
调度/协议?似乎有一些陈述,如
import、use、require 在 Elixir 中。
所以看起来应该可以编写短代码并让 编译器确定它应该使用 Dict.get 还是 String.get:
import Dict, String
# Getting :key from the Dict.
value = get options, :key
# Getting the second char from the String
char = get "some-string", 2
这种方法在 Elixir 中有效吗? IE。是否可以写短
和紧凑的代码,而不是像长的完全前缀的名称
A.B.C.do_something?
【问题讨论】:
-
你想要的是类型推断。即使在支持该类型的语言(主要是 ML 家族语言)中,有时也需要类型注释。我的意思是,即使在类型推断语言中,您有时也可能不得不做一些类似于 Dict.get 或 String.get 的事情。此外,虽然更短的代码是一个好目标,但其他开发人员能够阅读您的代码也是一个重要目标。从这个角度来看,强制消歧并不完全是一件坏事。
-
这并不总是一个好主意,它会使您的代码更短,但是当您在 6 个月后返回它时,它会变得更加难以弄清楚,因为您遇到了 where 的情况这 ????是否定义了该函数
标签: elixir