Size: a a a

CODE BLOG / Чат

2020 March 09

P

Phoenix in CODE BLOG / Чат
Steel Sword
Нуууу, учитывая, что в шарпе вроде есть struct...
?
источник

🎁

🎁Kopoh🎄 in CODE BLOG / Чат
Phoenix
Фишка в том что есть языки которые сами их реализуют
Фишка в том что я хочу и мне нравится писать игры, и там был либо Шарп либо плюсы, это самые известные движки типо UE4  и Unity3d и c++ в 11 лет сложно, а Шарп в самый раз
источник

PG

Pavel Grachev in CODE BLOG / Чат
Phoenix
data class User(val name: String, val password: String)
А это частая конструкция? Для классов?
источник

P

Phoenix in CODE BLOG / Чат
Pavel Grachev
А это частая конструкция? Для классов?
Весьма
источник

SS

Steel Sword in CODE BLOG / Чат
Pavel Grachev
А это частая конструкция? Для классов?
дата-класс или такой конструктор?
источник

P

Phoenix in CODE BLOG / Чат
Steel Sword
дата-класс или такой конструктор?
Оба
источник

S

SeanWoo in CODE BLOG / Чат
Phoenix
Мколько бы строк это на шарпе заняло бы?
И что? С++ тоже тогда издевательство? Ты из этих, питонистов чтоли?
источник

PG

Pavel Grachev in CODE BLOG / Чат
Steel Sword
дата-класс или такой конструктор?
Ну, я так понял это какое-то сокращённое объявление класса?
источник

PG

Pavel Grachev in CODE BLOG / Чат
Или нет?
источник

SS

Steel Sword in CODE BLOG / Чат
Phoenix
Оба
Я хочу узнать что его удивило
источник

P

Phoenix in CODE BLOG / Чат
SeanWoo
И что? С++ тоже тогда издевательство? Ты из этих, питонистов чтоли?
Мм.. нет, я хуже. питон считаю издевательством
источник

S

SeanWoo in CODE BLOG / Чат
Phoenix
Мм.. нет, я хуже. питон считаю издевательством
А что тебе важно в ЯП?
источник

P

Phoenix in CODE BLOG / Чат
Pavel Grachev
Ну, я так понял это какое-то сокращённое объявление класса?
Ммм.. это основное его обьявление
источник

P

Phoenix in CODE BLOG / Чат
SeanWoo
А что тебе важно в ЯП?
Удобство работы с ним и исполнение необходимых задач
источник

S

SeanWoo in CODE BLOG / Чат
Phoenix
Удобство работы с ним и исполнение необходимых задач
Удобство это дело каждого, но какие твои основные задачи?
источник

PG

Pavel Grachev in CODE BLOG / Чат
Phoenix
Ммм.. это основное его обьявление
Ну. Я имел ввиду без объявления логики. (Возможно, я вообще не понял, что этим примером ты хочешь показать)
источник

S

SeanWoo in CODE BLOG / Чат
Говоришь мол С# это издевательство над разрабом, а в котлине data в объявлении класса и val в аргументах с ":" не это ли издевательство?)
источник

SS

Steel Sword in CODE BLOG / Чат
Pavel Grachev
Ну, я так понял это какое-то сокращённое объявление класса?
дата-класс автоматически генерирует кучу шаблонного кода по полям констуктора. Скобочки и есть конструктор. Главный конструктор.

Фишка в том, что объявление класса похоже на объявление функции.

class A(b: String) {
   val c = b * b
}

Вот у нас класс с одним полем c.

Если значение передаётся напрямую, можно объявить поле прямо в конструкторе.

class A(val b: String)

Вот у нас класс с полем b, значение которого берётся напрямую из конструктора. При создании объекта new не нужен.
val a = A("hello")
println(a.b)        // hello

data class используется для классов данных, в которых только поля и почти нет или вообще нет логики. Но ее можно сделать.
Феникс поправит если ошибся.

Можно добавить дополнительные конструкторы.

Еще при наследовании нужно связывать конструктор наследника с конструктором родителя. Короче, ООП зашибись какой навороченный
источник

PG

Pavel Grachev in CODE BLOG / Чат
Steel Sword
дата-класс автоматически генерирует кучу шаблонного кода по полям констуктора. Скобочки и есть конструктор. Главный конструктор.

Фишка в том, что объявление класса похоже на объявление функции.

class A(b: String) {
   val c = b * b
}

Вот у нас класс с одним полем c.

Если значение передаётся напрямую, можно объявить поле прямо в конструкторе.

class A(val b: String)

Вот у нас класс с полем b, значение которого берётся напрямую из конструктора. При создании объекта new не нужен.
val a = A("hello")
println(a.b)        // hello

data class используется для классов данных, в которых только поля и почти нет или вообще нет логики. Но ее можно сделать.
Феникс поправит если ошибся.

Можно добавить дополнительные конструкторы.

Еще при наследовании нужно связывать конструктор наследника с конструктором родителя. Короче, ООП зашибись какой навороченный
Ну, значит я правильно понял пример. Вот и спросил, частая ли это конструкция, где не нужна никакая логика, но нужен вот класс
источник

SS

Steel Sword in CODE BLOG / Чат
SeanWoo
Говоришь мол С# это издевательство над разрабом, а в котлине data в объявлении класса и val в аргументах с ":" не это ли издевательство?)
Ключевое слово data говорит о том, что нужно сгенерировать шаблонный код. Ключевое слово val говорит о том, что это не просто аргумент, а поле
источник