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

这实际上没有多大帮助 . 你真的想

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)

如果格式不好则会抛出 .

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))

java可变长字符串_具有可变长度的scala字符串插值相关推荐

  1. 扫盲!Java可变长数组,看这篇就对了!

    来自:ImportNew/覃佑桦 | 责编:乐乐 链接:tutorials.jenkov.com/java-performance/resizable-array.html 有时我们希望将把数据保存在 ...

  2. Java可变长参数列表

    可以把类型相同但个数可变的参数传递给方法,方法的参数声明为: (类型名--参数名) 在方法声明中,指定类型后紧跟着省略号(...),只能给方法中指定一个可变长参数,同时该参数必须是最后一个参数,任何常 ...

  3. oxp开放型可变长协议_培养开放型领导者

    oxp开放型可变长协议 在红帽,我们有句谚语:并不是每个人都需要成为人事经理,但是每个人都应该成为领导者. 对于许多人而言,这需要深刻思考领导者的思维方式. 但是从某些方面来说,这是我们所有人直观了解 ...

  4. java 补齐字符串_使用String.format()格式化字符串,java自动补全自增长字符串

    JDK1.5中,String类新增了一个很有用的静态方法String.format(): format(Locale l, String format, Object... args) 使用指定的语言 ...

  5. python 判断字符串是否包含另一个字符串_强烈推荐:Python字符串(string)方法整理(一)...

    作者:骏马金龙 原文地址: https://www.cnblogs.com/f-ck-need-u/p/9127699.html python中字符串对象提供了很多方法来操作字符串,功能相当丰富. p ...

  6. [转载] python 判断字符串是否包含另一个字符串_强烈推荐:Python字符串(string)方法整理(一)...

    参考链接: python中的字符串string center 作者:骏马金龙 原文地址: https://www.cnblogs.com/f-ck-need-u/p/9127699.html pyth ...

  7. c int转字符串_【C++实现python字符串函数库】字符串匹配函数startswith与endswith

    [C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...

  8. bootstrap table格式化字符串_你要的PHP字符串处理函数都在这了!

    php中文网最新课程 每日17点准时技术干货分享 打印输出函数 说明 echo 输出一个或多个字符串 print 输出字符串 printf 输出格式化字符串 sprintf Return a form ...

  9. java可变长字符串类型,Java 常用类——StringBufferamp;StringBuilder【可变字符序列】_IT技术_软件云...

    一.字符串拼接问题 由于 String 类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象. Demo: 1 public class StringDemo { 2 pub ...

最新文章

  1. log4net简介(三)之无法写入日志
  2. JavaScript扩展运算符(...)
  3. mybatis教程--原始方式和mapper方式开发dao详解
  4. Python 杨辉三角形的简单实现
  5. linux练习手册,Linux操作习题集(1)
  6. 本地如何安装运行多个vue.js项目?
  7. Netty工作笔记0072---Protobuf内容小结
  8. 自动化测试学习笔记(一)HTML概念
  9. 摩根大通分析:随着灰度资金流动缓慢,比特币能否重回4万美元仍存疑问
  10. C++ 文字常量与常变量
  11. 2.Rails程序框架
  12. 992. Sort Array By Parity II - LeetCode
  13. C语言-基础例题55道
  14. 井下作业类毕业论文文献有哪些?
  15. linux播放csf文件
  16. Kali Linux上最佳安全测试工具
  17. OpenCV python
  18. matlab中nc值是什么意思,科学网-.nc数据读取详细资料matlab2010a及后面的版本-张凌的博文...
  19. 计算机入门在线阅读,计算机应用基础教程(Windows 7+Office 2010)
  20. win10系统怎么qq远程连接到服务器,QQ远程控制功能在Win10系统上无法使用怎么解决...

热门文章

  1. Ubuntu20.04 Desktop image 添加快捷方式
  2. MySQL三大范式详解(小白也能懂哦)
  3. 数据库 / 事务的隔离级别
  4. 启明云端分享| ESP32-S3 + 480*480分辨率的2.1寸圆屏旋钮方案
  5. 高德推出查岗功能_新型「查岗」工具?高德推出「家人地图」新功能
  6. linux关于界面的API,linux系统基础知识(ABI和API)
  7. asp.net代码审计起始篇之系统搭建
  8. BZOJ(8) 1053: [HAOI2007]反素数ant
  9. 蓝桥杯练习题十六进制转十进制
  10. Timus题目中测试数据数量的计算