Size: a a a

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

2020 October 26

VG

Viktor G. in Язык программирования Julia / Julia programming language
Звучит как способ избежать множественного наследования. То есть, вместо абстрактного типа можно делать интерфейс в виде модуля с набором функций?
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
да
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
у такого подхода более широкие возможности по сравнению с просто наследованием от абстрактного типа
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
В Джулии эта штука называется Holy Traits (по имени Tim Holy, который её придумал). Подробнее про это можно почитать здесь: https://invenia.github.io/blog/2019/11/06/julialang-features-part-2/
источник

AK

Alexandr Krotov in Язык программирования Julia / Julia programming language
А паттерн синглтона реализуем в Юле?
источник

A

Arthur in Язык программирования Julia / Julia programming language
Да, и даже активно используется. missing и nothing реализованы через него)
источник

A

Arthur in Язык программирования Julia / Julia programming language
Что, кстати, классно. Потому что достаточно стандартных средств языка для имплеметации отсутствующих значений, и всегда можно сделать свою, если не хватает стандартного
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
ага, самый простой синглтон это такая штука: struct A end
единственный способ создать его значение - это вызвать A(), при этом a1=A() и a2=A() совершенно неотличимы: a1 === a2
источник

AK

Alexandr Krotov in Язык программирования Julia / Julia programming language
Неуверенно ощущаю себя без явной передачи ссылки вместо значения просто 😁 что вообще в Юли копирует переменную, а что все таки копирует? Знаю что если делать срез массива, то это вроде будет ссылка на диапазон массива, а если массив передавать как аргумент в функцию? А если отправлять TCPSocket либо IOStream (конкретно имею ввиду файл)
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
про массив - a[1:10] делает копию
@view a[1:10] делает "ссылку" на диапазон
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
остальные вопросы не понял
источник

АО

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

АО

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

АО

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

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
IOStream будет по ссылке передаваться, в том смысле, что если внутри функции мутировать IOStream (например читать из него), то эти изменения останутся после выполнения функции.
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
Андрей Оськин
Ну, в нулевом приближении, mutable передаются по ссылке, immutable копируются.
с immutable для корректности не важно, как  передаются - всё равно же не изменить значение :)
ради оптимизации, как я понимаю, особо они не копируются
источник

АО

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

function f(x)
 x[1] = 2
end

a = [1]
f(a)
a # [2]
источник

АО

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

АО

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

A

Arthur in Язык программирования Julia / Julia programming language
Кор девы говорят, что immutable по семантике копируются, mutable по ссылке. Конкретная реализация - на усмотрение компилятора
источник