вкратце об определении типа в скале
Apr. 29th, 2013 04:18 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Я сегодня провёл интересный день, пытаясь с помощью манифестов, тайптагов, верёвки и палки и такой-то цюрихской божией матери сделать так, чтобы вот если какая-то там джава, номинально возвращающая Object, мне вернула в качестве ответа
Понял наконец, что это смешно.
Если вернули пустой массив, то не отличу. И если вернули... нет, лучше так, если у меня списки ленивые, то всяко не отличу.
Вот в общем виде: есть
Уже не говоря о том, что данные-то в риалтайме откуда-то прибегают; вот, скажем, у нас такой весь из себя type-safe JSON, берёт что-то с интернетов, и чо? А нам вдруг прислали зип-файл, или джейсон с половиной тела (это цитата из русских бизнесменов 90-х); так и чо. Нет, ладно, джейсон конечен и познаваем. Но не ленивый же список. И не все джейсоны, что придут нашей аппликации от её старта до её успешного окончания.
С ним, со списком, надо иначе.
Вот и всё. Ну типа там... подумать надо.
Array[Array[(String, String)]]
, то я бы лихо отличил его от Array[String]
, ну если не через match/case
, так через =:=
, <:<
, T : TypeTag
и т.п.Понял наконец, что это смешно.
Если вернули пустой массив, то не отличу. И если вернули... нет, лучше так, если у меня списки ленивые, то всяко не отличу.
Вот в общем виде: есть
type Fruit = Apple | Orange
, и есть список фруктов, и давайте матчить весь список. Это ж не решается. Уже не говоря о том, что данные-то в риалтайме откуда-то прибегают; вот, скажем, у нас такой весь из себя type-safe JSON, берёт что-то с интернетов, и чо? А нам вдруг прислали зип-файл, или джейсон с половиной тела (это цитата из русских бизнесменов 90-х); так и чо. Нет, ладно, джейсон конечен и познаваем. Но не ленивый же список. И не все джейсоны, что придут нашей аппликации от её старта до её успешного окончания.
С ним, со списком, надо иначе.
Вот и всё. Ну типа там... подумать надо.
stack.pop match { case l:List[_] => { val list: List[(String, String)] = l collect { case (p0:String, p1:String) => (p0, p1) } ...
no subject
Date: 2013-04-30 03:28 am (UTC)no subject
Date: 2013-04-30 07:22 am (UTC)no subject
Date: 2013-04-30 07:23 am (UTC)no subject
Date: 2013-04-30 08:17 am (UTC)А уж что с этим можно поделать, зависит от.
В данном случае, приходится прибегать к извратам.
no subject
Date: 2013-04-30 06:58 am (UTC)no subject
Date: 2013-04-30 05:31 pm (UTC)Но я думаю, я что-нибудь сделаю для чистоты типов в этом случае, на самом деле. Чтоб сразу знать, что браузер может вернуть, а что нет.
no subject
Date: 2013-04-30 05:33 pm (UTC)no subject
Date: 2013-04-30 05:36 pm (UTC)no subject
Date: 2013-04-30 09:48 am (UTC)Пустое это. Надо просто перед едой проверять счищается ли кожура или можно есть так.
no subject
Date: 2013-04-30 05:37 pm (UTC)no subject
Date: 2013-04-30 09:13 pm (UTC)