Size: a a a

2021 March 31

D

D in pro.elixir
Aleksey @cheatex
Это нормально что после определения структуры во вложенном модуле надо алиасить модуль сам в себе чтобы обращаться к структуре по короткому имени?
defmodule Outer.Struct do
 alias Outer.Struct

 defstruct name: nil

 def init(params) do
   state = %Struct{
     name: params
   }
 end
end
Без alias Outer.Struct ошибка компиляции Struct.__struct__/1 is undefined, cannot expand struct Struct. Make sure the struct name is correct. If the struct name exists and is correct but it still cannot be found, you likely have cyclic module usage in your code
defmodule Outer.Struct do
 alias
__MODULE__

 defstruct name: nil

 def init(params
), do:  %Struct{name: params} ...
end
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Хуйныя какая то если честно
источник

ŹR

Źmićer Rubinštejn in pro.elixir
без алиаса


defmodule Outer.Struct do
 defstruct name: nil

 def init(params), do:  %__MODULE__{name: params} ...
end


Можно же сразу так захерачить
источник

A ß in pro.elixir
+, если алиасить __MODULE__ то на что нибудь короткое
источник

D

D in pro.elixir
Źmićer Rubinštejn
Хуйныя какая то если честно
это с чего это хуйныя? может человек хочет имя Struct использовать
источник

A ß in pro.elixir
alias __MODULE__, as: Wtf
источник

D

D in pro.elixir
Źmićer Rubinštejn
Хуйныя какая то если честно
если для тебя это х.., не значит что так для всех, мне не хочется писать MODULE много раз, это не удобно
источник

M

MrFlorius in pro.elixir
Anastasiya Dyachenko
я обычно использую вариант с разными переменными когда нужно где-то после использовать первую переменную, в других случаях называю одинаково
Вообще, я одинаковый имена использую только в with, когда оно по смыслу подходит
источник

D

D in pro.elixir
A ß
alias __MODULE__, as: Wtf
да, или так
источник

ŹR

Źmićer Rubinštejn in pro.elixir
В js ты тоже делашь t = this чтобы много букав не писать?
источник

D

D in pro.elixir
в js ты тоже пишешь "__" вокруг this?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Предлагаю тогда сразу делать defmodule O.S
источник

T

Tharin in pro.elixir
Źmićer Rubinštejn
В js ты тоже делашь t = this чтобы много букав не писать?
Я не люблю много букв(
источник

T

Tharin in pro.elixir
Но при этом я обожаю вложенность пространств имен
источник

T

Tharin in pro.elixir
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Я только __ и пишу в общем то
источник

M

MrFlorius in pro.elixir
Не вижу смысла алиасить MODULE, так смотришь в код и все понятно, а с алиасом нет
источник

D

D in pro.elixir
это личное предпочтение каждого, мне проще писать и читать имена без underscore и upcase
источник

A

Aleksey @cheatex in pro.elixir
Źmićer Rubinštejn
без алиаса


defmodule Outer.Struct do
 defstruct name: nil

 def init(params), do:  %__MODULE__{name: params} ...
end


Можно же сразу так захерачить
не читабельно и не идиоматично имхо.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
источник