LINUX.ORG.RU

Деструкция массива

 ,


0

2

Сегодня применил в первый раз за многие годы кодинга

baseName, ext = fileName.split(".", 2)
Не как там в Го где туплы с err на каждый вызов и фича вынужденная (вообще не понимаю зачем туплы когда можно микро структурки - они хоть именованные, а в Го вообще не осилили Maybe/Option как нормальные люди делают) Подумал что мб удобно еще для парсинга CVS
name, occupation, salary = cvsLine.split(cvsSep)
А больше применений этой фиче в нормальных языках не вижу.

★★★

Следующий раз за многообразие тегов получишь штраф.

tailgunner ★★★★★ ()
Ответ на: комментарий от RazrFalcon

тут именно тот случай.
В руби File.basename отделяет только одно расширение файла и то если попросишь.
А мне надо было превратить «archive.tar.gz» в [«archive», «tar.gz»] те отделить вообще все расширения

bga_ ★★★ ()

Го вообще не осилили Maybe/Option

В гоу много чего не осилили
Например, когда в питоне нужно прочитать json, делаем просто
resp_json = p.stdout.read().decode('utf8')
k = json.loads(resp_json)
и получаем готовый словарь, независимо от глубины этого словаря

В гоу все сильно сложнее
С помощью интерфейсов нужно ручками написать структуру, полностью соответствующую данному словарю

kto_tama ★★★★★ ()

Что сказать-то хотел?

thunar ★★★★★ ()
Ответ на: комментарий от bga_
>>> 'archive.tar.gz'.split('.',2)
['archive', 'tar', 'gz']

Ибо второй параметр - это число делений, а не фрагментов.

anonymous ()
Ответ на: комментарий от kto_tama

и получаем готовый словарь, независимо от глубины этого словаря
В гоу все сильно сложнее
С помощью интерфейсов нужно ручками написать структуру, полностью соответствующую данному словарю

Чем map[string]interface{} не устраивает?

Да, потом нужно кастить типы, как и в любом другом статически-типизированном языке.

korvin_ ★★★★★ ()

Ну не видишь и не видишь, в чем проблема / что обсуждать?

Octagon ()

Не понял о чем пост, но мнение имею: когда в го завезут норм графическую либу, будет торт.

Deleted ()

В питоне для работы с путями в ФС лучше использовать os.path.
А лисапеды свои никому не показывать.
И это не деструкция (разрушение), а распаковка массива.

Virtuos86 ★★★★★ ()
Последнее исправление: Virtuos86 (всего исправлений: 1)

А больше применений этой фиче в нормальных языках не вижу.

Результат работы unzip можно сразу распаковывать в отдельные колонки

>>> rows = [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')]
>>> numbers, letters = zip(*rows)
>>> numbers
(1, 2, 3, 4, 5)
>>> letters
('a', 'b', 'c', 'd', 'e')

Crocodoom ★★★★ ()
Ответ на: комментарий от Virtuos86

А лисапеды свои никому не показывать.

Правильно. Особенно на ЛОРе. Скажут что ты говно. Мы скажем. Я скажу

vertexua ★★★★★ ()
Последнее исправление: vertexua (всего исправлений: 1)

А больше применений этой фиче

какой фиче ? split ?

Dred ★★★★★ ()
Ответ на: комментарий от kto_tama

Например, когда в питоне нужно прочитать json
нужно ручками написать структуру

Ты не видишь разницы между ЯП с динамической и стройкой типизацией ? Ну сложи в гошный интерфейс, кто мешает.

Dred ★★★★★ ()
Ответ на: комментарий от bga_

В общем-то, это вообще зачаток паттерн-матчинга, сопоставления с образцом. В Python 2 еще можно такие выверты делать:

>>> def f((a, b), c):
...     print a, b, c
... 
>>> f("a b".split(), "c")
a b c
>>> 

Virtuos86 ★★★★★ ()
Ответ на: комментарий от Dred

Ты не видишь разницы между ЯП с динамической и стройкой типизацией ?

Подорвём стройку типизации динамитческой!

Virtuos86 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.