Comments 21
Используйте интерполяцию, глазки коровоточат.
Тогда это:
превратится в это
Тогда это:
Console.WriteLine
(
"{0} ({1}; {2}) is a {3} of type {4}. It has {5} reactivity.",
this.Name, this.Symbol, this.Number,
this.Category, this.Type, this.Reactivity
);
превратится в это
Console.WriteLine($"{this.Name} ({this.Symbol}; {this.Number}) is a {this.Category} of type {this.Type}. It has {this.Reactivity} reactivity.");
+1
Указание типа при объявлении переменной говорит о явной, а не о статической типизации.
+5
Есть еще learnxinyminutes.com
+1
Изучать новый язык бывает адски сложноКак-то неправильно поставлены акценты на мой взгляд. Синтаксис любого языка можно изучить за пару дней, особенно если это уже не первый язык. Гораздо важнее понять подкапотные различия, типа работа с памятью, сборка мусора, работа с процессами, и т.п. А если уж говорить о новичках на проекте, то по моему опыту гораздо больше времени занимает изучить незнакомые фреймворки и библиотеки, и еще больше — код, написанный ранее.
+6
Хочу посмотреть на такой же трюк где новый язык окажется не императивным, а логическим.
0
Статью стоило назвать
Осваиваем новые ООП языки программирования, опираясь на уже изученные ООП
Но даже такое описание не полное.
Как объяснить JavaScript программисту, что в С++/Java/C# нельзя передавать произвольное количество параметров произвольного типа за исключением крайних случаев?
+1
printf считается крайним случаем?
0
Гораздо сложнее наоборот объяснить C++ программисту, что this в JavaScript указывает не на текущий экземпляр, а на контекст.
+1
Как объяснить JavaScript программисту, что в С++/Java/C# нельзя передавать произвольное количество параметров произвольного типа за исключением крайних случаев
Если сильно хочется, то все можно:
void MyFunc1(Object ... arg) {
... arg[0]...arg[20]...
}
void MyFunc2(Map<String,Object> arg) {
... arg.get("var1")... arg.get("var2")...
}
0
Угу, угу…
Ты весь такой из себя Java разработчик, а тебе на и Haskell.
Ты весь такой из себя Java разработчик, а тебе на и Haskell.
+2
Кажется, что чтобы изучить новый язык, иногда нужно наоборот «выключить» у себя в голове предыдущие.
0
Когда-то смотрел видос по руби для пхп-шников. Там чувак предлагал адаптироваться к руби методом замены, то бишь: меняем function на def, убираем { в начале методов, заменяем end в конце методов, убираем баксы и точки с запятыми… и вот вам грубо говоря руби :)
0
Автору (не переводчику) следовало бы самому освоить языки о которых он пишет. Если вы делаете что то вроде:
List<String> particles = new List<String>();
particles.Add("electron");
particles.Add("proton");
particles.Add("neutron");
в шарпах, при этом пытаясь его преподавать Ruby-истам, это говорит как минимум о вашей некомпетентности. То же самое можно сказать о коде на Руби:
particles = ["electron", "proton", "neturon"]
particles.push("muon")
particles.push("photon")
Когда в том и другом языке есть просто элегантнейшие и ярчайшие конструкции для такого рода операций:
var product = new []{"electron"}.Union(new [] {"proton", "neutron"})
или
product = ["electron", "proton", "neturon"] + ["muon", "photon"]
Удивлен что автор в своих примерах обошелся без goto
.
+1
Статья ни о чём. Вот интересно, кто-нибудь что-нибудь новое или полезное из неё подчерпнул?
А вообще изучение нового фреймворка на известном тебе языке часто оказывается и сложнее и интереснее одновременно, чем переход на другой язык.
А вообще изучение нового фреймворка на известном тебе языке часто оказывается и сложнее и интереснее одновременно, чем переход на другой язык.
0
Sign up to leave a comment.
Осваиваем новые языки программирования, опираясь на уже изученные