Cześć,
mam troszkę chyba nietypowy problem. Chcę nauczyć się programować w języku Java, ale nie potrafię się przekonać do samego kodu. Uczę się samodzielnie Pythona od dwóch lat i patrząc na różne przykłady gdzieś w sieci mimowolnie zaczynam zastanawiać się jak to napisać w Pythonie. I to jest mój problem. W książce, którą czytam ("Java w 21 dni" Rogers Cadenhead) jest przykładzik który ma coś wydrukować. Przepisując kod z książki do repl.it wywaliło nawet errora, ale że nie lubię się poddawać to wypatrzyłem gdzie jest źle i poprawiłem błąd. Nazwa klasy była inna, która występowała także poniżej w metodzie. Działa. Tyle tylko, że tak naprawdę nie potrafię zrozumieć tego kodu. Wygląda on tak:
class Main {
int[] makeRange(int lower, int upper) {
int[] range = new int[(upper-lower) + 1];
for (int i = 0; i < range.length; i++) {
range[i] = lower++;
}
return range;
}
public static void main(String[] arguments) {
int[] range;
Main lister = new Main();
range = lister.makeRange(4,13);
System.out.print("Tablica: [ ");
for (int i = 0; i < range.length; i++) {
System.out.print(range[i] + " ");
}
System.out.println("]");
}
}
Natomiast dokładnie to samo w Pythonie zajmuje znacznie mniej:
class RangeNums():
def __init__(self, nums):
self.nums = nums
nums = [x for x in range(4,14)]
str_nums = " ".join([str(x) for x in nums])
print("Tablica: [ " + str_nums + " ]")
Wiem, głupia sprawa, ale czy jest jakiś sposób, żeby się przekonać do zapisu Javy i samego języka? Chciałbym się nauczyć nie myśleć Pythonem .. jakby to nie zabrzmiało ;)
out.println("Tablica: [" + Joiner.on(' ').join(IntStream.range(4, 14).iterator()) + "]");
:D :Dout.println(Iterator.range(4, 14).mkString("Tablica: [", " ", "]"));
:]Main.java:3: error: package io.vavr.collection does not exist