日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java可变长字符串_具有可变长度的scala字符串插值

發(fā)布時(shí)間:2024/10/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java可变长字符串_具有可变长度的scala字符串插值 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

scala> def format(n: Int)(i: Int) =

| f"A%%0${n}d" format i

format: (n: Int)(i: Int)String

scala> format(5) _

res0: Int => String =

scala> .apply(21)

res1: String = A00021

編輯:

scala> import scala.tools.reflect._,scala.reflect.runtime._,universe._

import scala.tools.reflect._

import scala.reflect.runtime._

import universe._

scala> val tb = currentMirror.mkToolBox()

tb: scala.tools.reflect.ToolBox[reflect.runtime.universe.type] = scala.tools.reflect.ToolBoxFactory$ToolBoxImpl@2d10e0b1

scala> def f(n: Int)(i: Int): String = {

| val code = raw"""f"A$${$i}%0${n}d""""

| tb.eval(tb.parse(code)).asInstanceOf[String]

| }

f: (n: Int)(i: Int)String

scala> val g = f(5) _

g: Int => String =

scala> g(21)

res9: String = A00021

這實(shí)際上沒有多大幫助 . 你真的想

scala> tb.typecheck(tb.parse(code))

scala.tools.reflect.ToolBoxError: reflective typecheck has failed: illegal conversion character 'k'

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal$$anonfun$typecheck$1.apply(ToolBoxFactory.scala:178)

如果格式不好則會(huì)拋出 .

scala> val code = raw"""(i: Int) => f"A$${i}%k0${10}d""""

code: String = (i: Int) => f"A${i}%k010d"

scala> tb.typecheck(tb.parse(code))

scala.tools.reflect.ToolBoxError: reflective typecheck has failed: illegal conversion character 'k'

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal$$anonfun$typecheck$1.apply(ToolBoxFactory.scala:178)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal$$anonfun$typecheck$1.apply(ToolBoxFactory.scala:170)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal$$anonfun$transformDuringTyper$1$$anonfun$11.apply(ToolBoxFactory.scala:148)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal$$anonfun$transformDuringTyper$1$$anonfun$11.apply(ToolBoxFactory.scala:148)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal$$anonfun$transformDuringTyper$1$$anonfun$9.apply(ToolBoxFactory.scala:138)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal$$anonfun$transformDuringTyper$1$$anonfun$9.apply(ToolBoxFactory.scala:138)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal$$anonfun$transformDuringTyper$1$$anonfun$withContext$1$1.apply(ToolBoxFactory.scala:139)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal$$anonfun$transformDuringTyper$1$$anonfun$withContext$1$1.apply(ToolBoxFactory.scala:139)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal$$anonfun$transformDuringTyper$1$$anonfun$7.apply(ToolBoxFactory.scala:137)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal$$anonfun$transformDuringTyper$1$$anonfun$7.apply(ToolBoxFactory.scala:137)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal$$anonfun$transformDuringTyper$1.apply(ToolBoxFactory.scala:148)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal$$anonfun$transformDuringTyper$1.apply(ToolBoxFactory.scala:121)

at scala.reflect.internal.Trees$class.wrappingIntoTerm(Trees.scala:1716)

at scala.reflect.internal.SymbolTable.wrappingIntoTerm(SymbolTable.scala:16)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal.withWrapping$1(ToolBoxFactory.scala:120)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal.transformDuringTyper(ToolBoxFactory.scala:121)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal.typecheck(ToolBoxFactory.scala:169)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$$anonfun$typecheck$2.apply(ToolBoxFactory.scala:375)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$$anonfun$typecheck$2.apply(ToolBoxFactory.scala:367)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$.liftedTree2$1(ToolBoxFactory.scala:355)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$.apply(ToolBoxFactory.scala:355)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl.typecheck(ToolBoxFactory.scala:367)

at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl.typecheck(ToolBoxFactory.scala:27)

... 32 elided

scala> val code = raw"""(i: Int) => f"A$${i}%0${10}d""""

code: String = (i: Int) => f"A${i}%010d"

scala> tb.typecheck(tb.parse(code))

res19: tb.u.Tree =

((i: Int) => ({

val arg$macro$9: Int = i;

new scala.collection.immutable.StringOps("A%010d").format(arg$macro$9)

}: String))

總結(jié)

以上是生活随笔為你收集整理的java可变长字符串_具有可变长度的scala字符串插值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。