编程难题,智慧解答

和  的作用是什么?

我期望这行简单的代码 printf("foo\b\tbar\n"); 将"o"替换为"\t"并产生以下输出 fo bar (假设制表位每 8 个字符出现一次)。 foo bar 看来我的 shell 将 \b 解释为"将光标向后移动一个位置",将 \t 解释为"将光标移动到下一个制表位"。 答案 退格键和制表符都可以移动光标位置。 你的代码说: 打印"富" 将光标向后移动一格 将光标向前移动到下一个制表位 输出"条"。 为了获得您期望的输出,您需要printf("foo\b \tbar")。 输出"富" 将光标向后移动一格 输出一个" “(这取代了第二个"o”)。 将光标向前移动到下一个制表位 输出"条"。 大多数时候,使用制表符和退格键来格式化程序输出是不合适的。printf()格式说明符。 这个小脚本展示了一种改变终端选项卡渲染的方法。 #!/bin/bash tabs -8 echo -e "\tnormal tabstop" for x in `seq 2 10`; do tabs $x echo -e "\ttabstop=$x" done tabs -8 echo -e "\tnormal tabstop" 另请参阅man setterm和regtabs。 如果您重定向输出或仅写入文件,制表符通常会显示为少于标准 8 个字符,尤其是在"编程"编辑器和 IDE 中。 换句话说: printf("%-8s%s", "foo", "bar"); /* this will ALWAYS output "foo bar" */ printf("foo\tbar"); /* who knows how this will be rendered */ 恕我直言,一般来说,选项卡很少适用于任何事情。...

和 有何不同?

在下面的代码中,我不知道这些字符在功能上有何不同:\r \t \n。 这是一些示例代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Sorting words in a block of text by length</title> <link rel="stylesheet" type="text/css" href="common.css" /> </head> <body> <h1>Sorting words in a block of text by length</h1> <?php $myText = <<<END_TEXT But think not that this famous town has only harpooneers, cannibals, and bumpkins to show her visitors. Not at all. Still New Bedford is a queer place....

不生成换行符

我使用以下代码: if (delanaloge.equals(stari)) { if (novi.equals("-")) { zdruzen = " -"; } else { zdruzen = zdruzen + " " + " - " + novi + "\r"; } nap = true; } \r附加以创建换行符,但它不会像我预期的那样生成换行符。 - 213 - 232 - 1321 如何在字符串中添加换行符? 答案 你可以用这个: public static String newline = System.getProperty("line.separator"); 来自: stackoverflow.com

- 保存和 - 储备-DEV之间有什么区别?

有什么区别: npm install [package_name] 和: npm install [package_name] --save 和: npm install [package_name] --save-dev 这是什么意思?以及真正的影响--save和-dev关键字? 答案 和…之间的不同--save和--save-dev如果您在自己的项目中尝试了这两者,可能不会立即引起注意。所以这里有一些例子… 假设您正在构建一个使用**moment** 包装以解析和显示日期。您的应用程序是调度程序,因此它确实需要此软件包运行,如:cannot run without it。在这种情况下,您将使用 npm install moment --save 这将在您的软件包中创建一个新值。 "dependencies": { ... "moment": "^2.17.1" } 当您开发时,它确实有助于使用诸如测试套件之类的工具,并且可能需要茉莉核和业力。在这种情况下,您将使用 npm install jasmine-core --save-dev npm install karma --save-dev 这也会在您的软件包中创建一个新值。 "devDependencies": { ... "jasmine-core": "^2.5.2", "karma": "^1.4.1", } 你做not need 测试套件以正常状态运行该应用程序,因此--save-dev类型依赖性,仅此而已。您可以看到,如果您不了解真正发生的事情,那很难想象。 直接从NPM文档取文档#依赖项 Dependencies 依赖项是在简单的对象中指定的,该对象将软件包名称映射到版本范围。版本范围是一个具有一个或多个空间分隔描述符的字符串。依赖项也可以用TARBALL或GIT URL识别。 Please do not put test harnesses or transpilers in your dependencies object. See devDependencies, 以下。...

b和 b之间的区别

我正在读一本关于正则表达的书,我遇到了这个示例\b: 那只猫把他的食物分散在整个房间里。 使用正则 - \bcat\b将匹配单词cat但不是cat在scattered。 为了\B作者使用以下示例: 请输入九位数字的ID 出现在您的颜色上 - 编码的通键。 使用正则\B-\B火柴-在单词之间color - coded。使用\b-\b另一方面与-在nine-digit和pass-key。 在第一个示例中如何使用我们使用\b分开cat并在第二次使用中\B分开-?使用\b在第二个示例中,与之前所做的相反。 请向我解释区别。 编辑:另外,有人可以用新示例解释吗? 答案 混乱源于你的思想\b匹配空格(可能是因为"b"暗示"空白")。 \b匹配空字符串单词的开始或结尾 。\B在单词的开头或结尾处匹配空字符串。这里的关键是" - “不是单词的一部分。所以<left>-<right>火柴\b-\b因为在-。另一方面<left> - <right>(请注意空间),仪表板的两侧都没有单词边界。单词边界是左右的一个空间。 另一方面,搜索\bcat\b单词边界的行为更加直观,并且与预期的"猫"匹配。 来自: stackoverflow.com

d+在正则表达式中意味着什么?

我是正则表达式的新手,并在以下\ d+中来了。我不完全知道这意味着什么,请指出正确的方向。 答案 \d是数字(范围0-9中的字符),并且+意味着1次或更多次。所以,\d+是1个或更多数字。 这与正则表达式一样简单。您应该尝试更多地阅读正则表达式。Google有很多结果正则表达教程, 例如。或者您可以尝试使用免费的工具正则教练这将使您输入正则表达式和示例文本,然后指示(如果有的话)与正则匹配。 来自: stackoverflow.com

n和 r之间的区别?

有什么区别\n(newline)和\r(马车返回)? 特别是有什么实际的 之间的差异\n和\r?是否有一个应该使用的地方代替另一个? 答案 就ASCII代码而言,这是3-由于它们分别为10和13 ;-)。 但是说真的,有很多: 在UNIX和所有类似Unix的系统中,\n是线结束的代码,\r没什么特别的 结果,用C和大多数语言以某种方式复制它(甚至是远程),\n是线结束的标准逃逸序列(根据需要转换为/从OS特异性序列) 在旧的Mac系统(Pre-OS X)中,\r是线结束的代码 在Windows(以及许多旧的IS)中,行末端的代码为2个字符,\r\n,按这个顺序 作为(令人惊讶的;-)结果(回到比Windows大得多的OSS),\r\n是 Internet 上文本格式的标准行终止符 用于机电电视式"终端",\r命令马车向左走,直到击中最左边的停止(缓慢操作),\n命令滚子卷起一行(一个更快的操作) - 这就是您始终拥有的原因\r before \n,以便在马车仍向左移动时滚筒可以移动! - )Wikipedia有一个更详细的解释。 对于字符模式终端(通常像上面的均匀打印),以原始模式,\r和\n采取类似的行动(在光标方面除外,is没有马车或滚筒;-) 实际上,在写作文本文件的现代背景下,您应始终使用\n(基础运行时,如果您在怪异的操作系统上,例如Windows ;-)。使用的唯一原因\r如果您正在写入字符终端(或更可能模仿它的"控制台窗口"),并且希望您写的下一行覆盖您刚刚写的最后一个(有时用于愚蠢的" ASCII动画"效果酒吧) - 不过,这在吉斯的世界中变得非常过时;-)。 来自: stackoverflow.com

r和 n有什么区别?

怎样\r和\n不同的?我认为这与Unix vs. Windows与Mac有关,但我不确定它们是如何与众不同的,以及在Regexes中搜索/匹配的情况。 答案 他们是不同的角色。\r是马车返回,\n是线馈。 在"旧"打印机上,\r将打印头发送回线的开始,然后\n用一行提出纸张。因此,两者都是开始在下一行上打印的必要条件。 显然,现在这有些无关紧要,尽管取决于控制台,您仍然可以使用\r移至行的开始并覆盖现有文本。 更重要的是,Unix倾向于使用\n作为线路分离器;窗户倾向于使用\r\n作为线路分离器和Mac(最大OS 9)用过的 使用\r作为行分隔符。(Mac OS X是Unix-Y,因此使用\n反而;可能有一些兼容性情况\r虽然被使用。) 有关更多信息,请参阅维基百科换行文章。 编辑:这对语言敏感。例如,在C#和Java中\n 总是表示Unicode U+000A,定义为线供稿。在C和C ++中,水有点混乱,因为含义是特定于平台的。有关详细信息,请参见评论。 来自: stackoverflow.com

u003c是什么意思?

我正在查看TwitterJavaScript文件,我在模板哈希中看到了这一点: Browse Interests{{/i}}\u003C/a\u003E\n \u003C/li\u003E\n {{#logged_in}}\n 这些代码代表什么? 答案 这是一个Unicode字符。在这种情况下\u003C和\u003E意思是 : U+003C <少于标志 U+003E>大于标志 查看列表这里 来自: stackoverflow.com

符号在 javascript 导入中起什么作用?

例如: import Component from '@/components/component' 在我正在查看的代码中,它的行为类似于../相对于文件路径在目录中上升一级,但我想更一般地了解它的作用。 答案 模块标识符的含义和结构取决于模块加载器 或者模块捆绑器。 你很可能有类似的东西babel-插件-根-导入在你的 webpack/babel 配置中。 基本上这意味着从项目的根开始 ..它避免了编写类似的东西import Component from '../../../../components/component' Edit: 它存在的原因之一是因为import Component from 'components/component'不这样做,而是在node_modules文件夹 来自: stackoverflow.com

和有什么区别

两者都是空间的意思,但是有什么区别吗? 答案 一是不间断空格另一个是常规空间。 此外,正如 Svend 在他的评论中指出的那样,不间断的空格不会折叠。 来自: stackoverflow.com

__ -construct使用的功能是什么?

我一直在注意__construct上课很多。我做了一些阅读和浏览网络,但找不到我能理解的解释。我只是从OOP开始。 我想知道是否有人可以一般地了解它是什么,然后是一个简单的例子,说明它如何与PHP一起使用? 答案 __construct是在PHP5中引入的,它是定义您的构造函数的正确方法(在PHP4中,您将类的名称用于构造函数)。您不需要在课堂中定义构造函数,但是如果您想传递对象构造上的任何参数,则需要一个。 一个例子可能会这样: class Database { protected $userName; protected $password; protected $dbName; public function __construct ( $UserName, $Password, $DbName ) { $this->userName = $UserName; $this->password = $Password; $this->dbName = $DbName; } } // and you would use this as: $db = new Database ( 'user_name', 'password', 'database_name' ); 在PHP手册中解释了其他所有内容:点击这里 来自: stackoverflow.com

__attribute__((constructor)) 到底是如何工作的?

看起来很清楚它应该设置一些东西。 具体什么时候运行? 为什么有两个括号? 是__attribute__一个函数? 这在 C 中有效吗? 它所使用的函数是否需要是静态的? 什么时候__attribute__((destructor))跑步? Objective-C 中的示例: __attribute__((constructor)) static void initialize_navigationBarImages() { navigationBarImages = [[NSMutableDictionary alloc] init]; } __attribute__((destructor)) static void destroy_navigationBarImages() { [navigationBarImages release]; } 答案 它在加载共享库时运行,通常是在程序启动期间。 所有 GCC 属性都是如此; GCC 特定语法。 是的,这适用于 C 和 C 。 不,该函数不需要是静态的。 析构函数在共享库卸载时运行,通常在程序退出时运行。 因此,构造函数和析构函数的工作方式是共享对象文件包含特殊部分(ELF 上的 .ctors 和 .dtors),其中包含对分别用构造函数和析构函数属性标记的函数的引用。 想想看,普通的静态链接器中可能存在一些类似的魔力,因此无论用户选择静态还是动态链接,在启动/关闭时都会运行相同的代码。 来自: stackoverflow.com

__Contains__做什么,可以称为__Contains___________________________________________________________

这是我的代码: class a(object): d='ddd' def __contains__(self): if self.d:return True b=a() print b.contains('d') # error print contains(b,'d') # error 答案 像所有特殊方法一样(带有"魔术名称"开始和结束__),__contains__是not 打算直接调用(在非常具体的情况下,例如UP =对超类的调用):相反,此类方法被称为内置和操作员操作的一部分。如果是__contains__,有问题的操作员是in——“收容检查"操作员。 和你的课a在您提出的时(除了修复错字,并使用True代替true!-), 和b作为实例,print 'x' in b会打印True - 任何其他遏制都会检查b, 自从b总是返回True(因为self.d,一个非空字符串是正确的)。 来自: stackoverflow.com

__dirname和./在node.js中有什么区别?

在node.js和引用与当前目录有关的文件中进行编程时,是否有任何理由使用该文件__dirname可变,而不仅仅是常规./?到目前为止,我一直在使用。__dirname并且从本质上讲,要知道将我的././‘转换为那是明智的,如果是这样,为什么这将是一个明智的主意。 答案 要旨 在node.js中__dirname始终是当前执行脚本所在的目录(看到这个)。因此,如果您输入__dirname进入/d1/d2/myscript.js,其值为/d1/d2。 相比之下,.给您运行的目录node使用库时的终端窗口(即工作目录)中的命令path和fs。从技术上讲,它是从您的工作目录开始的,但可以使用process.chdir()。 例外是您使用的时候.和require()。里面的路径require始终相对于包含调用的文件require。 例如… 假设您的目录结构是 /dir1 /dir2 pathtest.js 和pathtest.js包含 var path = require("path"); console.log(". = %s", path.resolve(".")); console.log("__dirname = %s", path.resolve(__dirname)); 你也是 cd /dir1/dir2 node pathtest.js 你得到 . = /dir1/dir2 __dirname = /dir1/dir2 您的工作目录是/dir1/dir2那就是什么.决心。自从pathtest.js位于/dir1/dir2就是这样__dirname也决心。 但是,如果您从/dir1 cd /dir1 node dir2/pathtest.js 你得到 . = /dir1 __dirname = /dir1/dir2 在这种情况下,您的工作目录是/dir1那就是什么.决心,但是__dirname仍然可以解决/dir1/dir2。 使用.里面require… 如果里面dir2/pathtest.js你有一个require致电包含一个文件dir1你会always做 require('../thefile') 因为里面的路require始终与您调用的文件有关。它与您的工作目录无关。 来自: stackoverflow.com