The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Критическая уязвимость в сервисе Librem One, выявленная в де..., opennews (ok), 02-Май-19, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


24. "Критическая уязвимость в сервисе Librem One, выявленная в де..."  +2 +/
Сообщение от Аноним (24), 02-Май-19, 14:42 
Обычное поведение для неиспользуемых переменных, в чём проблема?
Ответить | Правка | Наверх | Cообщить модератору

43. "Критическая уязвимость в сервисе Librem One, выявленная в де..."  –1 +/
Сообщение от Аноним (43), 02-Май-19, 18:13 
У этого психологического феномена есть собственное название, но оно у меня начисто вылетело из головы. Суть заключается в том, что его раньше унижали за выбор языка, и ему это было неприятно. Поэтому он копирует поведение своих обидчиков, чтобы таким образом показать, мол, я тоже часть стаи, не надо меня трогать.
Ответить | Правка | Наверх | Cообщить модератору

51. "Критическая уязвимость в сервисе Librem One, выявленная в де..."  +2 +/
Сообщение от А (??), 02-Май-19, 19:11 
Зачем спецсимволы? Зачем их так много? result = понятен всем, unset var понятен всем и т.п. Зачем вся это ахинея с ;?*:,№?_%"! __dw__?
Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

60. "Критическая уязвимость в сервисе Librem One, выявленная в де..."  +/
Сообщение от Аноним (54), 02-Май-19, 20:00 
> Обычное поведение для неиспользуемых переменных

Оно обычно далеко не для всех языков и очень далеко от интуитивного. Поэтому такие ошибки и случаются, причём отнюдь не редко.

Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

75. "Критическая уязвимость в сервисе Librem One, выявленная в де..."  +1 +/
Сообщение от Аноним84701 (ok), 03-Май-19, 11:46 
> Оно обычно далеко не для всех языков и очень далеко от интуитивного.
> Поэтому такие ошибки и случаются, причём отнюдь не редко.

Используется оно еще со времен Пролога, SML, в реляционной алгебре/калькуляции, Haskell, Scala, OCaml, ржавчине.
mydata(AnonNr, _, Message,_,_,_,_), вместо mydata(AnonNr, Unused0, Message, Unused1, Unused2, Unused3, Unused4).

А ошибка тут классическая для динамической типизации, т.к. даже из контекста понятно, что типы TResult и TYieldedPairWhatever совсем разные вещи.
Писали бы вместо "result, _ ="   "result, u(nused) =" было бы точно такое же кино.

Ответить | Правка | Наверх | Cообщить модератору

80. "Критическая уязвимость в сервисе Librem One, выявленная в де..."  +/
Сообщение от Аноним (54), 03-Май-19, 12:28 
> Используется оно еще со времен Пролога, SML, в реляционной алгебре/калькуляции, Haskell, Scala, OCaml, ржавчине.

О того, что какая-то форма записи используется давно, она не становится автоматически более удачной. А, скажем, в go

a = foo()
эквивалентно
a, _ = foo()

С фига ли в питоне не так?
Ответить | Правка | Наверх | Cообщить модератору

82. "Критическая уязвимость в сервисе Librem One, выявленная в де..."  +/
Сообщение от Аноним84701 (ok), 03-Май-19, 13:03 
>> Используется оно еще со времен Пролога, SML, в реляционной алгебре/калькуляции, Haskell, Scala, OCaml, ржавчине.
> О того, что какая-то форма записи используется давно, она не становится автоматически  более удачной.

Для паттерматчинга в этих ЯП она достаточно удачна:
foo(x,y,_,_) и foo(x,y,unused,unused) в декларативной сематнике очерь разные выражения.
А вот размытые определения "(не)интуитивно" обычно просто "синдром утенка"

> А, скажем, в go

a = foo()
эквивалентно
a, _ = foo()

> С фига ли в питоне не так?

Во-первых:
с фига ли вообще в более старом ЯП с дин. типизацией "должно" копироваться поведение более нового, cо статистической?

Во-вторых:
> эквивалентно


package main
import "fmt"
func foo()(int,int) { return 1,2 }
func main() {
    y,_ := foo()
    z := foo()
    fmt.Println("y:",y,"z:",z)
}
prog.go:8:4: assignment mismatch: 1 variable but foo returns 2 values

https://golang.org/doc/effective_go.html#blank
> If an assignment requires multiple values on the left side, but one of the values will not be used by the program, a blank identifier on the left-hand-side of the assignment avoids the need to create a dummy variable and makes it clear that the value is to be discarded.

...
> If you only need the second item in the range (the value), use the blank identifier, an underscore, to discard the first:


sum := 0
for _, value := range array {
    sum += value
}

яснопонятно 🙄
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру