Podczas czytania o Julii na http://learnxinyminutes.com/docs/julia/ natknąłem to:Wyjaśnienie ikona
# You can define functions that take a variable number of
# positional arguments
function varargs(args...)
return args
# use the keyword return to return anywhere in the function
end
# => varargs (generic function with 1 method)
varargs(1,2,3) # => (1,2,3)
# The ... is called a splat.
# We just used it in a function definition.
# It can also be used in a fuction call,
# where it will splat an Array or Tuple's contents into the argument list.
Set([1,2,3]) # => Set{Array{Int64,1}}([1,2,3]) # produces a Set of Arrays
Set([1,2,3]...) # => Set{Int64}(1,2,3) # this is equivalent to Set(1,2,3)
x = (1,2,3) # => (1,2,3)
Set(x) # => Set{(Int64,Int64,Int64)}((1,2,3)) # a Set of Tuples
Set(x...) # => Set{Int64}(2,3,1)
Który Jestem pewien, jest doskonale dobre wyjaśnienie, jednak nie udało mi się uchwycić główne idea/korzyści.
Z tego co rozumiem do tej pory:
- Korzystanie z ikona w definicji funkcji pozwala nam określić, że nie mamy pojęcia, jak wiele argumentów wejściowych funkcja zostanie podana, może być 1, może być 1000 Naprawdę nie widzę korzyści z tego, ale przynajmniej rozumiem (mam nadzieję) koncepcję tego.
- Użycie splat jako argumentu wejściowego do funkcji powoduje ... Co dokładnie? I dlaczego miałbym go używać? Gdybym musiał wprowadzić zawartość tablicy do listy argumentów, użyłbym tej składni: some_array (:, :) (dla tablic 3D użyłbym some_array (:,:, :) itd.).
myślę jeden z powodów, dlaczego nie rozumiem to, że jestem zmaga się z definicji krotki i tablic, to krotki i typy danych (tablice jak Int64 jest to typ danych) w Julia? Czy są to struktury danych i jaka jest struktura danych? Kiedy słyszę tablicę, zazwyczaj myślę o matrycy 2D, być może nie najlepszym sposobem na wyobrazić tablice w kontekście programowania?
Zdaję sobie sprawę, że prawdopodobnie można napisać całe książki na temat struktury danych, a ja z pewnością mógłbym to zrobić w Google, jednak uważam, że ludzie o głębokim zrozumieniu tematu potrafią to wyjaśnić w dużo bardziej zwięzły sposób (i być może uproszczony), to powiedzmy, że artykuł wikipedia może, dlatego proszę was (i dziewczyny).
Wielkie dzięki :) – kip820