Описание тега unapply

1 ответ

Scala - не случайный класс и не имеет метода.unapply

Я новичок в Scala и получил несколько нерешенных проблем со следующим кодом: object exprs{ println("Welcome to the Scala worksheet") def show(e: Expr): String = e match { case Number(x) => x.toString case Sum(l, r) => show(l) + " + " + show(r)…
06 фев '17 в 11:42
1 ответ

Скала неприменить метод

Я пытаюсь понять метод scala unapply. Ниже мое понимание. Скажите, если у меня есть объект Person: class Person(val fname: String, val lname: String) object Person{ def unapply(x: Person) : Option[(String, String)] = Some(x.fname,x.lname) } new Pers…
26 дек '16 в 17:12
2 ответа

Scala не используется без параметра

Я студент, который изучает Scala в Корее. Я изучаю сопоставление с образцом и методы неприменения. Что меня смущает, так это то, что у объекта Emergency в параметре unapply есть параметр. Я не могу знать причину, когда я не помещаю параметр в блок с…
08 ноя '18 в 14:40
2 ответа

Приведение строки к Int с использованием экстракторов scala

Я пытаюсь разыграть String в Int используя экстракторы. Мой код выглядит следующим образом. object Apply { def unapply(s: String): Option[Int] = try { Some(s.toInt) } catch { case _: java.lang.Exception => None } } object App { def toT[T](s: AnyR…
1 ответ

Понимание неприменимо без класса дела

Я пытаюсь понять пример ниже unapply, class Emp(name: String, age: Int) object Emp { def apply(name: String, age: Int): Emp = new Emp(name, age) def unapply(emp: Emp): Option[(String, Int)] = Some(emp.name, emp.age) } К сожалению, это не с ошибкой к…
10 дек '18 в 17:06
2 ответа

Скала неприменить, что возвращает логическое значение

Читая это, у меня все еще есть вопросы о unapply() это возвращает Boolean, Если вы посмотрите книгу Scala Programming Book (2-е издание), стр. 602 . Вот пример: case Email(Twice(x @ UpperCase()), domain) => ... Где UpperCase определен как объект,…
11 сен '13 в 13:56
2 ответа

Ошибка совпадения Scala с отменой

Я пробую код на http://www.scala-lang.org/node/112 и получаю ошибку соответствия для чего-то, что не похоже на то, что оно должно сгенерировать. Это оригинальный код: object Twice { def apply(x: Int): Int = x * 2 def unapply(z: Int): Option[Int] = i…
25 июн '12 в 13:28
1 ответ

Scala - можно ли отменить возврат varargs?

Объект L1 ниже работает. Я могу "создать" L1 передавая varargs, что приятно, но я бы хотел назначить L1 используя тот же синтаксис. К сожалению, способ, которым я сделал это здесь, требует более уродливого синтаксиса вложения Array внутри L1, object…
28 июн '11 в 02:45
0 ответов

Scala-Lift: неоднозначная ссылка на перегруженное определение - не применять метод в дочернем классе

Компилятор говорит error: ambiguous reference to overloaded definition, both method unapply in object UserDto of type (in: Any)Option[(String, String, String, String)] and method unapply in class AbstractJsonConversion of type (in: net.liftweb.json.…
13 дек '12 в 12:24
1 ответ

Scala кастом отменить с дженериками

Я хотел бы сжать мой оценщик благодаря пользовательской универсальной функции unapply, которая оценивает аргумент и возвращает значение в случае успеха. Но это не с ошибкой error: not found: type Eval Есть ли способ достичь этого? Я посмотрел на тег…
09 апр '14 в 17:30
3 ответа

Как сопоставить шаблон с несколькими списками аргументов?

Рассмотрим этот класс: class DateTime(year: Int, month: Int, day: Int)(hour: Int, minute: Int, second: Int) как бы unapply метод выглядит так, если бы я хотел сопоставить что-то вроде: dt match { case DateTime(2012, 12, 12)(12, _, _) => // Decemb…
27 май '11 в 19:09
1 ответ

Можно ли использовать неявные преобразования для параметров в экстракторы (не применять) в Scala?

Я создал класс с именем CaseInsensitive, который переносит строку (см. Реализация класса строки, который выполняет сравнения без учета регистра в Scala). Я создал класс case, который имеет переменную-член типа CaseInsensitive, поэтому он получает ме…
30 ноя '09 в 16:16
2 ответа

Scala - бесформенный неявный параметр Generic.Aux, не найденный в unapply

Я столкнулся со следующей проблемой с импликациями в Scala, используя Shapeless's Generic.Aux: case class Complex(re: Double, im: Double) object Prod2 { def unapply[C, A, B](c: C)(implicit C: Generic.Aux[C, A :: B :: HNil]) = Some((C.to(c).head, C.t…
30 янв '19 в 02:13
2 ответа

Каковы ограничения на вывод типов с более высоким родом в Scala?

В следующем упрощенном примере кода: case class One[A](a: A) // An identity functor case class Twice[F[_], A](a: F[A], b: F[A]) // A functor transformer type Twice1[F[_]] = ({type L[α] = Twice[F, α]}) // We'll use Twice1[F]#L when we'd like to write…
2 ответа

Скала скрытого отменить

Я пытаюсь неявно деконструировать экземпляр класса в кортеж, чтобы создать лучший синтаксис DSL. Вот упрощенный пример того, что я пытаюсь сделать: class Pair[A,B](a: A, b: B){ def left = a def right = b } val pair = new Pair(1,2) implicit def unpai…
07 май '14 в 07:48
1 ответ

Как использовать экстрактор в полиморфном виде?

Я действительно не понимаю эту маленькую штуковину. У меня есть абстрактный класс Box с несколькими подклассами для разных типов. Например abstract class Box class StringBox(val sValue : String) extends Box Метод применения в сопутствующем объекте д…
19 апр '13 в 05:51
4 ответа

Допускает ли Scala такой экстрактор?

Допустим, у меня есть эта коллекция: val a = Array(Array(1,2,3,4,5),Array(4,5),Array(5),Array(1,2,6,7,8)) Есть ли способ определить экстрактор, который будет работать следующим образом: a.foreach(e => { e match { case Array( ending with 5 ) =>…
15 июл '11 в 20:02
2 ответа

Scala: класс Case неприменим против реализации вручную и удаления типа

Я пытаюсь понять, что делает Scala с классами дел, что делает их каким-то образом невосприимчивыми к предупреждениям об удалении типов. Допустим, у нас есть следующая простая структура классов. Это в основном Either: abstract class BlackOrWhite[A, B…
1 ответ

Играем с Нат без тематических занятий

Я просто создаю определение в Scala для Naturals, а также операцию PLUS: abstract class Nat { def +(other:Nat):Nat = this match { case Zero => other case Succ(x) => x + Succ(other) } } object Zero extends Nat { override def toString = "Zero" }…
19 авг '14 в 14:24
1 ответ

Какова временная и пространственная сложность экстрактора головы / хвоста Scala?

Какова временная и пространственная сложность для этого: def isPalindrome[A](x: Seq[A]): Boolean = x match { case h +: middle :+ t => h == t && isPalindrome(middle) case _ => true } Зависит ли это от реализации Seq? поскольку IndexedSe…
08 июл '15 в 21:04