Size: a a a

Язык программирования Julia / Julia programming language

2020 April 02

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
               _
  _       _ _(_)_     |  Documentation: https://docs.julialang.org
 (_)     | (_) (_)    |
  _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
 | | | | | | |/ _` |  |
 | | |_| | | | (_| |  |  Version 1.3.1 (2019-12-30)
_/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia> foo(k, ::Val{N}) where N = ntuple(i -> k, N)
foo (generic function with 1 method)

julia> foo(30, Val(5))
(30, 30, 30, 30, 30)
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Не, точно работает
источник

ВФ

Виктор Федоров in Язык программирования Julia / Julia programming language
Еще раз попробую
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Обратите внимание
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Val(5)
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
А не Val{5}
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
А!!!
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Хорошее наблюдение
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Второе это тип
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
А первое это объект такого типа
источник

ВФ

Виктор Федоров in Язык программирования Julia / Julia programming language
Действительно, но на самом деле я пока не понял, что такое Val{N}, Тype{Val{N}}
Напрягаюсь понять :)
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
julia> Val{5}
Val{5}

julia> Val(5)
Val{5}()
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Так чуть более очевидно
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Можно ещё typeof добавить
источник

ВФ

Виктор Федоров in Язык программирования Julia / Julia programming language
Да
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
julia> typeof(Val{5})
DataType

julia> typeof(Val(5))
Val{5}
источник

ВФ

Виктор Федоров in Язык программирования Julia / Julia programming language
, но все равно пока нарягаюсь
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Если писать Type{T}, то нужно в качестве аргумента передать тип Т
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
То есть это dispatch по переданному типу
источник

ВФ

Виктор Федоров in Язык программирования Julia / Julia programming language
Это понятно, но какой тип получается в результате, зачем он?
источник