- Julia 1.0 Programming Complete Reference Guide
- Ivo Balbaert Adrian Salceanu
- 201字
- 2021-06-24 14:21:49
Type annotations
As we saw in Chapter 2, Variables, Types, and Operations, type-annotating a variable is done with the :: operator, such as in the function definition function write(io::IO, s::String) #... end, where the parameter io has to be of type IO, and s of type String. To put it differently, io has to be an instance of type IO, and s an instance of type String. The :: operator is, in fact, an assertion that affirms that the value on the left is of the type on the right. If this is not true, a typeassert error is thrown. Try this out in the REPL:
# see the code in Chapter 6\conversions.jl: (31+42)::Float64
We get an ERROR: TypeError: in typeassert, expected Float64, got Int64 error message.
This is, in addition to the method specialization for multiple dispatch, an important reason why type annotations are used in function signatures.
The operator :: can also be used in the sense of a type declaration, but only in local scope, such as in functions, as follows:
n::Int16 or local n::Int16 or n::Int16 = 5
Every value assigned to n will be implicitly converted to the indicated type with the convert function.
- UI圖標創意設計
- PHP+MySQL網站開發技術項目式教程(第2版)
- 小程序,巧運營:微信小程序運營招式大全
- Visual C++應用開發
- Python數據結構與算法(視頻教學版)
- Android玩家必備
- Kotlin開發教程(全2冊)
- ScratchJr趣味編程動手玩:讓孩子用編程講故事
- HTML+CSS+JavaScript網頁設計從入門到精通 (清華社"視頻大講堂"大系·網絡開發視頻大講堂)
- Java Web從入門到精通(第3版)
- Deep Learning with R Cookbook
- UML2面向對象分析與設計(第2版)
- Python從入門到精通(第3版)
- 工業機器人離線編程
- C語言程序設計與應用實驗指導書(第2版)