官术网_书友最值得收藏!

  • Mastering Julia
  • Malcolm Sherrington
  • 228字
  • 2021-07-16 13:42:40

Composite types

A composition type is a collection of named fields, grouped together and treated as a single entity; these are termed records and structures in some programming languages.

If the type can also have functions (methods) associated with them the resulting collection is termed an object and the languages which support them (Java, C++, Python, Ruby, and so on) as object-oriented.

In Julia, functions are not bundled up with the data structures they operate on. The choice of the method a function uses is termed dispatch. When the types of ALL of a function's arguments are considered when determining the method employed, this is termed multiple dispatch and Julia uses this rather than the single dispatch we associated with object methods. We will be considering the implication of multiple dispatch in detail in the next chapter.

Composite type details are defined with the type keyword, followed by a list of field names, optionally annotated with the :: operator and terminated with end. If the type of the field is not specified Any is assumed.

Consider a simple type definition for membership of a meetup group:

type Member
 fullname::ASCIIString
 email::ASCIIString
 meetup::ASCIIString
 age::Int
 organiser::Bool
 mobile::ASCIIString
end
me = ("Malcolm Sherrington", "malcolm@ljuug.org", "London Julia User Group", 55, true, "07777 555555")
julia> names(me)
6-element Array{Any,1}: # => [:fullname,:email,:group,:mobile,:organiser,:mobile]
julia>me.fullname #=> Malcolm Sherrington"
julia>me.mobile #=> "07777 555555" (-- not really my number --
主站蜘蛛池模板: 新建县| 阳原县| 聊城市| 方城县| 东乌珠穆沁旗| 扎兰屯市| 双牌县| 西充县| 改则县| 叙永县| 来凤县| 清原| 郴州市| 武汉市| 开阳县| 阳江市| 兴安盟| 博乐市| 开平市| 酒泉市| 双鸭山市| 桐梓县| 南平市| 黎城县| 利辛县| 武乡县| 宿松县| 枣强县| 富顺县| 六盘水市| 高碑店市| 蒙城县| 岢岚县| 青龙| 赞皇县| 咸丰县| 大竹县| 肇庆市| 黑山县| 垫江县| 吴江市|