Pull to refresh
39
0
Борис Ванин @fogone

Пользователь

Send message
но список не много дает для понимания, это всё равно что судить о языке по количеству времен и падежей в нем. Только опыт разработки может дать представление, тот ли это язык, на который бы вы променяли скалу, джаву или еще что-то.
Паблик Морозов жив.
а то, что в статье — надо и не оверинжениринг?
Доклад тоже оказался неплохим.
да, прошу прощения, в первом примере infix пропустил
это же пример, просто, если не понятно, то вот полноценный рабочий пример:
class Struct(val fields: Map<String, Any>)

class StructBuilder {

    private val fields = HashMap<String, Any>()

    infix fun <T : Any> String.to(value: T) {
        fields[this] = value
    }

    operator fun <T : Any> String.invoke(value: T) {
        fields[this] = value
    }

    fun build(): Struct = Struct(fields)

}


fun build(builder: StructBuilder.() -> Unit): Struct =
        StructBuilder().apply(builder).build()

fun main(args: Array<String>) {

    val struct = build {
        "test1" to 10
        "test2" to "name"
        "test3"(50)
    }

}
Еще можно вот так:
class Struct {
    
    fun <T> String.to(valut:T) {
        
    }
    
    operator fun <T> String.invoke(value:T) {
        
    }
    
}

fun build(builder:Struct.()->Unit): Struct = Struct().apply(builder)

fun main(args: Array<String>) {
    
    build { 
        "test1" to 10
        "test2" to "name"
        "test3"(50)
    }
    
}
ну, да, в контексте другой функции, для простоты, чтобы различить от такой же на плоскости… это всё не про «правильное» название
осталось понять, почему матрицу трансформации не назвали матрицей трансформации, а назвали matrix3d :-)
сколько я видел, квадратные матрицы всегда называются просто MatrixN, потому что постфикс `d` обозначает измерение. В такой нотации матрица 4х4 должна называться Matrix4 и это звучит вполне логично. Можно посмотреть например на opengl
Не претендую даже на звание профана… но, на мой дилетантский взгляд
профан, насколько можно верить словарю ушакова — это значит «Человек, совершенно несведущий в чем-нибудь», однако дилетант — это " Занимающийся [чем-либо] как любитель (не профессионально)". Получается, что дилетант несколько более сведущ в предмете, чем профан. Сори за занудство, просто мне самому бывает очень неприятно, когда я понимал какое-то слово неправильно и употреблял, а мне про это даже никто не сказал.
Может так?
Matrix3d, Matrix4d
используете цейлон в продакшене?
да, это правда — unchecked cast это основной suppress и в моем коде, а вот NON_PUBLIC_CALL_FROM_PUBLIC_INLINE я использовать постеснялся, честно говоря, не уверен, что это хорошая идея. Может быть кто-то знает, почему компилятор это запрещает?
> Предупреждения и ошибки, которые генерирует компилятор Kotlin часто нужно замаскировать

если вы действительно делаете это часто, то явно делаете что-то не то. Хотя сама по себе таблица вещь очень полезная, спасибо!
вы правы, да, все эти варианты абсолютно нормально звучат. Но вот про компанию мне всё равно слух режет почему-то. Возможно, дело в том насколько очеловечено мы воспринимаем то или иное слово: семья, руководство и маршрутка — это вполне конкретные люди, если сказать: «Олег рассорил нашу дворовую компанию» — тоже звучит ок, потому что слова имеют вполне конкретных действующих лиц, даже «Игнат рассорил ПБОЮЛ „Рога и копыта“ звучит вполне годно, но вот слово „компания“ в таком обезличенном смысле как в статье звучит совсем странно.
правильно. В обоих случаях это множественное число, которое подразумевает, что рассорил одного и друга и второго. Здесь же использовано единственное, которое никак не намекает с кем-таки кто рассорился.
Разве по-русски можно сказать «рассорил компанию» без уточнения с кем?
если для проекта в котором ничего не понятно вы делаете костыль, то вероятно вы используете бестпрактис этого проекта, а как результат не будете выделяться на общем фоне и нарушать хрупкий баланс и эстетику остального кода

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity