精华内容
下载资源
问答
  • VS与VS Code的区别

    2021-03-27 19:04:06
    Microsoft Visual Studio(简称VS)下载: ...Visual Studio Code下载:https://code.visualstudio.com/ 两者功能不同 ...两者功能互补,开发调试时候自然用vs,简单看代码时候用vscode,并不冲突。 ...

    Microsoft Visual Studio(简称VS)下载:
    https://visualstudio.microsoft.com/zh-hans/

    Visual Studio Code下载:https://code.visualstudio.com/

    两者功能不同
    vscode本质是编辑器,类比记事本;
    visual studio是一个重量级的运行开发环境,类比java里的eclipse、IDEA;
    两者功能互补,开发调试的时候自然用vs,简单看代码的时候用vscode,并不冲突。

    展开全文
  • 使用 XML 好处在于更新 Bean 之后不需要重新编译代码,同时有利于将若干 Bean 组织在一个文件里,方便集中管理。缺点在于 XML 语法“噪声”太大,没有工具帮助情况下书写很繁琐,同时 XML 本身没有很好类型...
    • 使用 XML 的好处在于更新 Bean 之后不需要重新编译代码,同时有利于将若干 Bean 组织在一个文件里,方便集中管理。缺点在于 XML 语法的“噪声”太大,没有工具帮助的情况下书写很繁琐,同时 XML 本身没有很好的类型检查和语法检查机制,使得 XML 也很容易写错。
    • 使用代码的好处在于更加简洁清晰,同时不容易出错,缺点在于 Bean 的配置会分散在各个文件当中,以及需要重新编译代码才能更新配置。
    • 总结:从 Spring 本身的发展来看,使用代码(即 Annotation)进行配置逐渐取代了 XML 成为主流的配置方式,到最新的 SpringBoot 框架,XML 已经基本不见踪影。
    展开全文
  • 涉及定义地方,笔者已尽力还原文档意思。如果读者依旧感到阅读困难,建议直接查看英文文档,链接已在文中给出。如题,flexbox 中这两个属性在概念上很接近。笔者每次使用时,都有种看韩国女明星错觉。感觉...

    4fff05277a14d767af875649c6f8c666.png
    涉及定义的地方,笔者已尽力还原文档的意思。如果读者依旧感到阅读困难,建议直接查看英文文档,链接已在文中给出。

    如题,flexbox 中的这两个属性在概念上很接近。笔者每次使用时,都有种看韩国女明星的错觉。感觉哪里有点不一样,但又说不上来。

    先来看下官方定义。

    定义

    • align-items:
      • 作用对象:弹性盒子容器(flex containers);
      • 描述:该属性可以控制弹性容器中成员在当前行内的对齐方式。当成员设置了align-self 属性时,父容器的 align-items 值则不再对它生效;
      • w3c标准原文:链接
    • align-content:
      • 作用对象:多行弹性盒子容器(multi-line flex containers);
      • 描述:当弹性容器在正交轴方向还存在空白时,该属性可以控制其中所有行的对齐方式。Note:该属性无法作用于单行 (flex-wrap: no-wrap) 弹性盒子;
      • w3c标准原文:链接

    对比

    相同点:

    • 都被用来设置对齐行为。

    不同点:

    • align-items 的设置对象是行内成员;
    • align-content 的设置对象是所有行,且只有在多行弹性盒子容器中才生效。

    举栗

    以 center 关键字为例。

    文档对两个属性 cetner 关键字的描述:

    • align-items:行内成员会在其边界盒正交轴上被居中(如果行正交尺寸小于行内成员尺寸,行内成员将会在正交轴两方向等量溢出)。链接;
    • align-content:所有行被集中(挤)在弹性容器(正交轴)中间。它们彼此之间齐平,并且跟弹性盒子正交起始边界的空白与跟弹性盒子正交结束边界的空白相等。(如果溢出空白为负数,所有行将会在正交轴两方向等量溢出)链接。

    接下来我们先根据定义预测对齐的行为,再运行代码验证看是否一致。戳这里自己动手验证。

    列出所有会产生影响的条件,包括:是否自动换行 (flex-wrap: wrap/no-wrap),一行和多行,留和不留多余空白。3个条件排列组合后有8中可能。

    1. 自动换行:no-wrap,行数:1行,留白:不留。

    HTML:

    <div>
      <span>1</span>
      <span>1</span>
      <span>1</span>
    </div>

    CSS:

    div{
      display: flex;
      background-color: DodgerBlue;
      /* align-items or align-content: center; */
    }
    
    span{
      margin: auto;
      background-color: #f1f1f1;
      width: 280px;
      margin: 10px;
      text-align: center;
      line-height: 75px;
      font-size: 30px;
    }

    预测:

    • align-items:无效果。因为容器高度会自适应;
    • align-content:无效果。因为单行模式下该属性不起作用(见 align-content 定义)。

    验证:

    • align-items:✅

    16b2dc92baa35679d8d580e29557ec82.png
    1-1
    • align-content:✅

    16b2dc92baa35679d8d580e29557ec82.png
    1-2

    2. 自动换行:no-wrap,行数:1行,留白:留。

    HTML:

    <div>
      <span>1</span>
      <span>1</span>
      <span>1</span>
    </div>

    CSS:

    div{
      display: flex;
      background-color: DodgerBlue;
      height: 300px; /* 设置高度产生留白 */
      /* align-items or align-content: center; */
    }
    
    span{
      margin: auto;
      background-color: #f1f1f1;
      width: 280px;
      margin: 10px;
      text-align: center;
      line-height: 75px; /* 设置高度产生留白 */
      font-size: 30px;
    }

    预测:

    • align-items:正交轴居中。因为是单行模式,所以容器高度即整行高度;
    • align-content:无效果。因为单行模式下该属性不起作用(见 align-content 定义)。

    验证:

    • align-items:✅

    87b65c3a111fa472f1b44ac821fec277.png
    2-1
    • align-content:❌

    22245d7912daef356af0a47d36e6bfb2.png
    2-2

    分析错误:

    事实上 align-content 确实没有产生影响,是容器的 align-items 和成员的 hight 对布局造成了影响

    fe3ed1a2d893944ebae8d544e55349bc.png
    2-3 预测的2-2

    弹性盒子容器没有设置 align-items 属性,成员也没有设置 align-self 属性,所以盒子和成员的对齐行为都是默认值 (initial) 。align-self 的默认值是 auto 关键字,其释义是“使成员的对齐行为与容器的 align-items 的值一致”。再看 align-items 的默认值是 stretch[1] 关键字,其释义是“如果成员的长宽是 auto ,而且容器内正交轴方向的两个边距都是 auto,那么成员将会被拉伸。成员将会尽可能的在正交方向上填满所在行。”。

    问题已经很明朗了。align-items 是默认值 stretch,成员的 height 是默认值 auto,已经满足了拉伸的条件,所以产生了图 2-2 的效果。

    要想得到图 2-3 的效果,只要破坏其中任何一个条件即可。这里给出几种方法:

    • 设置成员 height 为不可被拉伸的值;
    • 设置成员 align-self 为 flex-start;
    • 设置容器 align-items 为 flex-start。

    3. 自动换行:no-wrap,行数:>1行,留白:不留。(不可能发生,不做讨论)

    4. 自动换行:no-wrap,行数:>1行,留白:留。(不可能发生,不做讨论)

    5. 自动换行:wrap,行数:1行,留白:不留。(没有讨论价值,留给读者自行验证)

    6. 自动换行:wrap,行数:1行,留白:留。(是例 8 的一个特例,不再单独讨论)

    7. 自动换行:wrap,行数:>1行,留白:不留。(没有讨论价值,留给读者自行验证)

    8. 自动换行:wrap,行数:>1行,留白:留。

    HTML:

    <div>
      <span>1</span>
      <span>2</span>
      <span>3</span>
      <span>4</span>
      <span>5</span>
      <span>6</span>
      <span>7</span>
    </div>

    CSS:

    div{
      display: flex;
      background-color: DodgerBlue;
      height: 450px; /* 设置高度产生留白 */
      width: 900px; /* 设置宽度产生换行 */
      flex-wrap: wrap; /* 设置自动换行 */
      /* align-items or align-content: center; */
    }
    
    span{
      margin: auto;
      background-color: #f1f1f1;
      width: 280px;
      margin: 10px;
      text-align: center;
      line-height: 75px;
      font-size: 30px;
    }

    预测:

    • align-items:整个容器在正交轴方向上被均分为三行,成员在所在行内正交居中;
    • align-content:受默认值影响,整个容器在正交轴方向上被均分为三行,成员伸展填满所在行。

    验证:

    • align-items:✅

    da4acace20ad7542ebf6742bc9c42b17.png
    4-1
    • align-content:❌

    039f2f4b6314372bb5e544e37237b5cb.png
    4-2

    错误分析:

    成员之所以没有拉伸,是因为成员在正交方向的两个边距都为 0。

    a97ad9654dd75ad0460262baff57b0d4.png
    4-3 预测的4-2

    笔者之所以会做出 4-3 图中的预测,是因为 align-items 的默认值是 stretch。为什么 stretch 没有生效?再回到上文查看 stretch 释义,成员发生(能且需要)拉伸需要满足两个条件。这里满足了①长宽为 auto ,但没有满足②正交方向的两个边距为 auto 。事实上成员正交方向的两个边距为 0,而造成这种情况的原因正是 align-content 为 cetner。

    align-content 的 cetner 关键字释义中提到 “所有行被集中(挤)在弹性容器(正交轴)中间(Lines are packed toward the center of the flex container)”。这里“挤”字是笔者在领悟到文档中 be packed toward 的意味后加上的。显然被 align-content 对齐到中间的行们彼此之间已经没有了多余的空间 (extra space),成员们的正交方向边距都是 0,所以无法拉伸了。

    让我们验证一下这个想法。仅把第一个成员 “1” 的高度改为 100px,理论上第一行其他几个成员就多出了额外的 25px 空间,为了填满空白它们会被拉伸。

    1258fac1fcfa82f53b6e0e8b9734fc48.png
    4-4

    确实如此,再次感叹下文档的用词真的非常准确。

    总结

    回到定义,align-items 和 align-content 的差异可以总结为如下两点。

    1. align-items 的上下文是行内,align-content 的上下文是弹性盒子容器;
    2. align-items 控制成员的对齐行为,align-content 控制所有行的对齐行为。

    最后祭上w3c标准里的两张导图。

    8d8664c56535546b7fa649a9428af90f.png
    illustration of align-items

    2a4268dac1547ea9a50fd66e5191e90e.png
    illustration of align-content

    参考

    1. ^MDN 所注默认值有误,以 w3c 文档为准
    展开全文
  • VS Code下设置断点运行 exports1.js 1 // -------- node.js core -------- 2 3 var module = { 4 exports: { 5 6 } 7 }; 8 9 exports = module.exports; 10 11 // -------- 下面正常写...

    在VS Code下设置断点运行

    exports1.js

     1 // -------- node.js core --------
     2 
     3 var module = {
     4     exports: {
     5 
     6     }
     7 };
     8 
     9 exports = module.exports;
    10 
    11 // -------- 下面正常写代码 --------
    12 
    13 exports.name = 'Alan';
    14 exports.test = function () {
    15     console.log('hi')
    16 };
    17 
    18 // 给导出的对象添加属性,直接这样就好了
    19 console.log(module.exports) // { exports: { name: 'Alan', test: [Function] } }
    20 
    21 // A.赋值给exports不会改变module.exports
    22 // exports = {
    23 //     name: 'Bob',
    24 //     add: function (a, b) {
    25 //         return a + b;
    26 //     }
    27 // }
    28 // B.赋值给exports.name会改变module.exports
    29 exports.name = 'Bob' // 赋值给exports不会改变module.exports, 赋值给exports.name会改变module.exports
    30 // 不过 ① exports 是一个引用,直接赋值给它,只是让这个变量等于另外一个引用
    31 console.log(exports) // { name: 'Bob', add: [Function] }
    32 // 并不会修改到导出的对象
    33 console.log(module.exports) // A. { exports: { name: 'Alan', test: [Function] } }
    34                             // B. Object {name: "Bob", test: }
    35 
    36 module.exports = {
    37     name: 'Bob',
    38     add: function (a, b) {
    39         return a + b;
    40     }
    41 }
    42 
    43 // ∵① 所以 只有通过 module.exports 才能真正修改到 exports 本身
    44 console.log(module.exports) // { exports: { name: 'Bob', add: [Function] } }
    45 console.log(exports)

    exports2.js

     

    var module = {
        exports: {
            name: "我是module的exports属性"
        }
    };
    var exports = module.exports;  
    //exports是对module.exports的引用,也就是exports现在指向的内存地址和module.exports指向的内存地址是一样的
    
    console.log(module.exports);    //  { name: '我是module的exports属性' }
    console.log(exports);   //  { name: '我是module的exports属性' }
    
    
    exports.name = "我想改一下名字";
    
    
    console.log(module.exports);    //  { name: '我想改一下名字' }
    console.log(exports);   //  { name: '我想改一下名字' }
    //看到没,引用的结果就是a和b都操作同一内存地址下的数据
    
    
    //这个时候我在某个文件定义了一个想导出的模块
    var Circle = {
        name: "我是一个圆",
        func: function (x) {
            return x * x * 3.14;
        }
    };
    
    exports = Circle;
    //看清楚了,Circle这个Object在内存中指向了新的地址,所以exports也指向了这个新的地址,和原来的地址没有半毛钱关系了
    
    console.log(module.exports);    //  { name: '我想改一下名字' }
    console.log(exports);   // { name: '我是一个圆', func: [Function] }

     

    参考:①https://cnodejs.org/topic/52308842101e574521c16e06

       ②https://www.zhihu.com/question/26621212

     

    转载于:https://www.cnblogs.com/stefango/p/9176279.html

    展开全文
  • VS Code的**“文件”菜单中,“打开文件夹(Open Folder)”**是指开打项目文件夹的根目录。一个项目文件夹(Project Folder)包含一个或多个文件夹项目相关的文件夹,以及该项目相关的VS Code配置(放在.vscode...
  • if (exception->ExceptionCode==EXCEPTION_BREAKPOINT) { contex->Eip+=1; printf("发现一个int3断点\n"); __asm{ xor eax,eax retn } } printf("异常不是我触发\n"); __asm{ mov eax,1 ...
  • <pre><code>package main import "time" import "fmt" func main() { timer1 := time.NewTimer(time.Second*2) <-timer1.C fmt.Println("Timer 1 expired") timer2 := time.NewTimer(time.Second) go ...
  • 目标 查找含指定特征的文本,并把这些文本单独复制出来。...我要从一个json文本中,提取出a键中的数字(这里它可能是一些id,然后我要拿这些id去数据库中做IN查询),分析一下它其他元素的区别:.
  • ASP.NET vs ASP——编译解释的区别

    千次阅读 2003-11-12 13:07:00
    ASP.NET vs ASP ——编译解释的区别 2000年6月Microsoft公司发布.NET计划以来,使编程工作在业界中引起了一次划时代的革命。ASP.NET是.NET计划中的一个重要组成部分,其为Web应用程序开发人员提供了许多新特性,...
  • 常规拼写检查器的区别在于LT E X不仅可以检测拼写错误,而且还可以检测许多语法和风格错误,例如: This is an mistake. The bananas is tasty. We look forward to welcome you. Are human beings any ...
  • 第一种,把所有代码文件都存成UTF-8 with BOM(UTF-8有区别),并在tasks.json中args[]内"-g",后面加入一行"-fexec-charset=GBK",如图即可,记得后面加逗号 第二种,把所有代码文件都存成GB 2312。但要注意...
  • mac 下 vs code 配置 SonarLint SonarLint SonarQube 区别: SonarLint 仅存在于 IDE(IntelliJ,Eclipse 和 Visual Studio)中。 其目的是在您键入代码时提供即时反馈。 为此,它专注于您要添加或更新代码。...
  • VS Code配置c/c++环境

    千次阅读 2019-09-01 10:28:48
    MinGW-w64MinGW的区别 为什么使用MinGW-w64 注意: 下载、安装、配置MinGW-w64 验证 安装扩展(extension) 安装C/C++ 创建工作区,用于存放代码 配置C/C++ 配置编译器路径 创建生成任务 配置debu...
  • 2、Gitcvs和svn的区别 3、下载、安装Git 3、设置git的username和useremail 4、建立本地仓库 5、从远程git服务器克隆一个仓库分支 一、Git基础 资源链接: Git简明指南 廖雪峰Git教程 1、什么是Git Git...
  • letvar的区别 作用域规则 一直以来我们都是通过var关键字定义JavaScript变量。 var a = 10; 大家都能理解,这里定义了一个名为a值为10的变量。 我们也可以在函数内部定义变量: function f() { var message...
  • 一、问题描述分析 编辑C/C++程序,我推荐使用C/C++,VS Code相对于别的编译器来说有很多的优势。但是如果第一次使用的话,会觉得其不好用。因为如果不配置好的话,...MinGwCygwin的区别中提到如下图, 如果在系统
  • catchonRejected之间真正区别 (The real difference between catch vs onRejected) Most popular articles describe the difference between catch and onRejected in a code snippet like...
  • For forEach() for / in for / of在JavaScript中的区别 瓦莱里·卡波夫(Valeri Karpov)@code_barbarian2019年2月20日 转自 ...
  • 可持续开发不仅在于项目架构设计,还代码质量密切相关,代码的...如果你还没有发现代码质量的区别,如果你从未见过优秀的代码,或者从未见过糟糕的代码,那么本文将以直观地对比,告诉你代码质量究竟会有多大的区
  • VC 之 cout wcout 区别及 wchar_t、CharSet、CodePage 等相关概念解析 (转载) 图一 实验平台信息见:《测试 VS 2010 对 C++ 0x 标准谨慎支持》。 先说两组概念:字符集(CharSet)编码方案(Encoding Scheme...
  • /MD /MT、/MTD/MDD的区别

    千次阅读 2015-07-01 19:36:58
    VS在 属性页 C/C++ -> Code Generation -> Runtime Library 一项中总共有四个选项 /MD /MT、/MTD/MDD,它们分别有什么区别
  • 在学习C++中,编写头文件(XXX.h)时候,为了防止重复引用,会加入#ifndef #endif指令,这也是常见,其格式如下: ...实际编写头文件时,在VS 2017 中,新建头文件时,会自动出现: #pragma o...
  • 可持续开发不仅在于项目架构设计,还代码质量密切相关,代码的整洁度和...如果你还没有发现代码质量的区别,如果你从未见过优秀的代码,或者从未见过糟糕的代码,那么本文将以直观地对比,告诉你代码质量究
  • 用示例看看及早求值和惰性求值的区别。 我使用了 <a href="https://github.com/thunks/thunk-redis">thunk-redis</a> 来做示例,因为它同时支持输出 thunk API 和 promise API。 <p><strong>Promise 的及早求...
  • <p>title: HTTP请求中的Form DataRequest Payload的区别 date: 2017-08-10 前端开发中经常会用到AJAX发送异步请求,对于POST类型的请求会附带请求数据。而常用的两种传参方式为:Form Data 和 ...
  • 在深入研究字符集编码,简称编码之前,我们先引入一个概念:编号(code),引入它是为了更好地编码(encode)相区分。 如果你对Unicode有深入了解,你也许已经意识到了Unicode中码点(code point)扮演正是编号...
  • 添加服务或者UUID:err_code = sd_ble_uuid_vs_add(&amp;nus_base_uuid, &amp;p_nus-&gt;uuid_type); 添加特征:err_code = send_rx_char_add(p_nus, p...区别:前者能添加服务和128位UUID; 后者这...
  • Martin, “Clean Code”如果你还没有发现代码质量的区别,如果你从未见过优秀的代码,或者从未见过糟糕的代码,那么本文将以直观地对比,告诉你代码质量究竟会有多大的区别。代码量我们知道代码量显示着功能的复杂...

空空如也

空空如也

1 2 3 4 5
收藏数 93
精华内容 37
关键字:

code的区别vs与vs