sprintf

如何在没有连接的情况下插值JavaScript中字符串中的变量?

牧云@^-^@ 提交于 2020-03-05 19:38:32
我知道在PHP中我们可以做这样的事情: $hello = "foo"; $my_string = "I pity the $hello"; 输出: "I pity the foo" 我想知道JavaScript是否也可以实现同样的功能。 在字符串内部使用变量而不使用串联-编写起来看起来更加简洁和优雅。 #1楼 从Firefox 34 / Chrome 41 / Safari 9 / Microsoft Edge开始,您可以使用名为 Template Literals的ES2015 / ES6功能,并使用以下语法: `String text ${expression}` 模板文字用 反 引号 (``) (重音)括起来,而不是双引号或单引号。 例: var a = 5; var b = 10; console.log(`Fifteen is ${a + b}.`); // "Fifteen is 15. 那有多干净? 奖金: 它还允许在JavaScript中使用多行字符串而不进行转义,这对于模板非常有用: return ` <div class="${foo}"> ... </div> `; 浏览器支持 : 由于较旧的浏览器(Internet Explorer和Safari <= 8)不支持此语法,因此您可能希望使用 Babel 将代码转换为ES5,以确保其可在任何地方运行。 边注:

使用top分析tomcat容器占用的内存排行

戏子无情 提交于 2020-03-01 16:26:48
命令: top -b -n1 | awk 'NR<=7{print;next}{n=$6;if(n~/m/)n*=1024;if(n~/g/)n*=1024*1024;a[sprintf("%12d",n)]=$0"\n"a[n]}END{c=asorti(a,b);for(n=c;n>0;n--)printf("%s", a[b[n]])}'|grep -A 10 'COMMAND' |grep 'java'|awk '{print $1 " " $6}'|while read line; do pid=$(echo $line|awk '{print $1}'); mem=$(echo $line|awk '{print $2}'); name=$(cd /var/lib/docker/containers ;grep -R Pid ./*|grep Pid|grep ${pid}|grep -o "\"/[a-zA-Z]*-0"|sed 's#"/##'); echo -e "${pid}\t${mem}\t${name}"; done CRT button: top -b -n1 | awk 'NR<=7{print;next}{n=$6;if(n~/m/)n*=1024;if(n~/g/)n*=1024*1024;a[sprintf("%12d",n)]=$0"\\n"a

php 日志库获取调用方的代码文件地址和代码行数

心已入冬 提交于 2020-03-01 14:32:57
在使用其他语言的打印日志的时候,经常能看到打印日志时带上文件地址和代码行数,对于调试和查找问题非常方便,但是 php 日志库里则很少见到这个功能,但这个功能还是可以实现的。 关键点就是用 php 的 debug_backtrace 函数 先看个例子 test.php function test() { print_r(debug_backtrace()); } test(); 输出 Array ( [0] => Array ( [file] => /path/test.php [line] => 7 [function] => test ) ) debug_backtrace 能获取整个调用链,所以,我们的日志库就可以根据这一条实现在日志中带上文件和行号的功能 function xlog(string $lv, string $format, ...$args) { $log = "%s\t%s:%s\t%s" . PHP_EOL; $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); return sprintf($log, $lv, trim($backtrace[0]['file']), $backtrace[0]['line'], sprintf($format, ...$args)); } echo xlog

C语言 sprintf

时间秒杀一切 提交于 2020-02-28 19:44:21
C语言 sprintf #include <stdio.h> int sprintf(char *str, const char *format, ...); 功能:根据参数format字符串来转换并格式化数据,然后将结果输出到str指定的空间中,直到出现字符串结束符 '\0' 为止。 参数: str:字符串首地址 format:字符串格式,用法和printf()一样 返回值: 成功:实际格式化的字符个数 失败: - 1 案例 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <time.h> int main(void) { char ch[100]; // 将内容放入ch内 sprintf(ch,"hello world"); sprintf(ch,"%02d+%02d=%02d",1,2,3); sprintf(ch, "%x+%o=%d", 0xabc, 2, 3); printf("%s\n", ch); return 0; } sprintf 使用案例 来源: https://www.cnblogs.com/xiangsikai/p/12378546.html

PHP一致性hash代码

纵然是瞬间 提交于 2020-02-28 11:24:50
[TOC] PHP实现一致性hash bash命令 因为下面PHP代码的模拟用户用的是随机数,所以统计结果达不到绝对的均衡. php ./hash.php | sort | uniq -c | sort PHP代码 这是之前学的时候留下来的测试代码,原理方面就不赘述了. <?php /** * @class ConsistentHash * @desc 无符号的一致性hash * @author liuhao */ class ConsistentHash { protected $nodeList = []; //服务器列表 protected $virtualNodeSite = []; //虚拟节点的位置 protected $virtualNodeCount = 20; //每个节点对应20个虚节点 /** * @desc 在服务器列表中, 为用户匹配合适的服务器 * @action getNodeAction * @param string $key 键名 * @return string 服务器IP地址 * @author liuhao */ public function getNode($key) { //获取当前下标的hash值 $keyHash = $this->crc32Hash($key); //先把hash环上上最小的一个节点临时当作是我们需要的节点

如何在JavaScript中进行字符串插值?

心已入冬 提交于 2020-02-28 04:53:12
考虑以下代码: var age = 3; console.log("I'm " + age + " years old!"); 除了字符串连接之外,还有其他方法可以将变量的值插入到字符串中吗? #1楼 警告:避免使用任何模板系统不允许您转义其分隔符。 例如,将无法使用此处提到的 supplant() 方法输出以下内容。 “由于我的{age}变量,我才3岁。” 简单的内插可能适用于小型的独立脚本,但通常会出现这种设计缺陷,从而限制了任何认真的使用。 老实说,我更喜欢DOM模板,例如: <div> I am <span id="age"></span> years old!</div> 并使用jQuery操作: $('#age').text(3) 或者,如果您只是厌倦了字符串连接,那么总会有其他语法: var age = 3; var str = ["I'm only", age, "years old"].join(" "); #2楼 如果您确实想使用大锤破解螺母,可以使用 Prototype的模板系统 : var template = new Template("I'm #{age} years old!"); alert(template.evaluate({age: 21})); #3楼 尝试 sprintf 。 例如: vsprintf('The first 4

Pascal基础(六)-C语言动态链接库

谁说我不能喝 提交于 2020-02-26 03:11:55
Pascal 调用 C语言 开发的 动态链接库, 环境: Fedora 31, gcc 9.2.1, fpc 3.0.4 C 语言的编译和链接相对简单(相对于C++), 所有只有C语言的动态链接库的调用方法记录,C++本身就复杂,编译和链接自然也复杂, 个人 猜测 ABI 一致也相对较难,暂不涉及 有时间会记录一篇Pascal编译为dll, 供C语言调用的例子 C语言动态链接库源码 //simplemath.h #ifndef SIMPLEMATH_H #define SIMPLEMATH_H #include <stdlib.h> typedef enum LoLevel_{ llDebug, llInfo, llWarn, llError, llFatal }LogLevel; typedef struct Student_{ int id; char name[20]; }Student; /* int plus_int(int a,int b); int max_int(int x,int y); void swap_int(int* x,int* y); int swap_void(void *a,void* b,size_t t); void logger(char* msg,LogLevel level); */ #endif //simplemath.c

C++ int与string的转化

谁都会走 提交于 2020-02-20 11:44:03
转自:http://www.cnblogs.com/nzbbody/p/3504199.html int本身也要用一串字符表示,前后没有双引号,告诉编译器把它当作一个数解释。缺省情况下,是当成10进制(dec)来解释,如果想用8进制,16进制,怎么办?加上前缀,告诉编译器按照不同进制去解释。8进制(oct)---前缀加0,16进制(hex)---前缀加0x或者0X。 string前后加上双引号,告诉编译器把它当成一串字符来解释。 注意:对于字符,需要区分字符和字符表示的数值。比如:char a = 8;char b = '8',a表示第8个字符,b表示字符8,是第56个字符。 int转化为string 1、使用itoa(int to string) 1 //char *itoa( int value, char *string,int radix); 2 // 原型说明: 3 // value:欲转换的数据。 4 // string:目标字符串的地址。 5 // radix:转换后的进制数,可以是10进制、16进制等。 6 // 返回指向string这个字符串的指针 7 8 int aa = 30; 9 char c[8]; 10 itoa(aa,c,16); 11 cout<<c<<endl; // 1e 注意:itoa并不是一个标准的C函数,它是Windows特有的

ns2中限制Trace文件的输出

旧巷老猫 提交于 2020-02-07 17:57:33
NS2模拟的最终生成文件是一个Trace文件,其中记录了模拟中的细节。当模拟规模很大时,Trace文件也会变得相当大,甚至有十几w行,10几M大的Trace文件。一旦需要对这么大规模的实验重复进行时,模拟过程就会变得相当缓慢。一方面,程序每次要写入十几万行的数据,我们知道IO操作是较慢的。另一方面,对这么大的文件分析(如:用gawk)也需要花费较长时间。所以需要对Trace文件进行修改,尽量避免让它记录一些在分析中不必要用到的记录。 与Trace文件关联的类定义在Trace/trace.h中,源文件是trace.cc。cmu-trace.h\cmu-trace.cc,是关于无线网中trace文件的生成类。是trace的一个子类。 Trace文件记录的是每个结点的哪个层(路由层、代理层等)发送或接收包的历史记录。也就是说,每当一个结点要发送或接收到一个包时,Trace文件就会为其生成一条对应的记录。 在C++实现的Trace/cmu-trace.cc中,有一个recv函数,每当结点接收或发送包时,都会调用Trace的recv函数,为其写记录。 void CMUTrace::recv(Packet * p,Handle * h); 从这个函数体我们可以看到下面代码是主要完成格式化一条Trace记录和写入Trace文件的过程: format(p, "---");    // 格式化 pt

字符串(string)与整型(int)、浮点型(float)等之间的转换

守給你的承諾、 提交于 2020-01-25 10:48:36
#include <stdlib.h> 1.int/float to string/array: C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。 ● itoa():将整型值转换为字符串。 ● ltoa():将长整型值转换为字符串。 ● ultoa():将无符号长整型值转换为字符串。 ● gcvt():将浮点型数转换为字符串,取四舍五入。 ● ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。 ● fcvt():指定位数为转换精度,其余同ecvt()。 除此外,还可以使用sprintf系列函数把数字转换成字符串,其比itoa()系列函数运行速度慢 2. string/array to int/float C/C++语言提供了几个标准库函数,可以将字符串转换为任意类型(整型、长整型、浮点型等)。 ● atof():将字符串转换为双精度浮点型值。 ● atoi():将字符串转换为整型值。 ● atol():将字符串转换为长整型值。 ● strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。 ● strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。 ● strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。