小编Ray*_*oal的帖子

获取JavaScript中出现的字符数

我有一个字符串,使用了一些数据','.现在我想计算该','字符串中的出现次数.我试过了:

var match = string.match('/[,]/i');
Run Code Online (Sandbox Code Playgroud)

但这给了我null如果我试图获得匹配数组的长度.有任何想法吗?

javascript

5
推荐指数
2
解决办法
2万
查看次数

如何找到CSS 3中缺少的CSS 2.1属性的替换?

W3C维护了所有CSS属性的优秀列表,包括当前和提议的属性.在标记为CSS 2.1的115个属性中,其中16个属于任何CSS模块(对于3级及更高级别).这些是:

方位角,仰角,行高,分页后,分页前,分页内,音高,音高范围,播放期间,丰富度,说话头,说话数字,说话标点符号,语速,压力,音量

现在我知道来自CSS Snapshot 2015的W3C声明,声明"每个模块添加功能和/或替换部分CSS2.1规范.CSC工作组打算新的CSS模块不会与CSS2.1相矛盾规范:只是他们将添加功能并改进定义." 但是,似乎没有升级路径或已弃用的属性列表.

我很确定现代浏览器会出于向后兼容的原因,选择遵守定义良好且稳定的CSS 2.1属性.但有人(可能是负责特定模块的人)认为CSS 2.1属性很笨重,黑客攻击,或者不适合CSS 3模块的干净世界.

例如,我搜索了CSS语音模块,以查看是否speak-numeral(提及缺失的16个中的一个)被提及.它不是,但我发现speak-as它似乎捕获相同的功能.

所以这里的编程和编程相关问题是:

  1. 为什么这16个属性没有被标记为已弃用?
  2. 某处有"升级到CSS3"指南吗?
  3. 新Web应用程序的适当策略是什么?我们是否继续使用这些旧属性,直到模块成为推荐状态和/或它们获得更好的浏览器支持?在样式表中使用这两个属性(旧的和新的)是个好主意吗?

css css3

5
推荐指数
1
解决办法
51
查看次数

这个递归函数究竟是如何在JavaScript中运行的?

我有一个递归函数的例子,我不明白的是事情发生的顺序:

function power(base, exponent) {
  if (exponent == 0)
    return 1;
  else
    return base * power(base, exponent - 1);
}
Run Code Online (Sandbox Code Playgroud)

函数何时返回值,在所有过程结束时或每次?

javascript recursion

4
推荐指数
3
解决办法
6140
查看次数

Windows'start/b'命令问题

我想在后台运行Tshark.exe.请问您能告诉我这个命令有什么问题.

start /b "c:\Program Files\Wireshark\tshark.exe" -i 1 -w file1.pcap
Run Code Online (Sandbox Code Playgroud)

这个cmd给了我这个错误"Windows无法找到'-i'......)

windows command

4
推荐指数
2
解决办法
3万
查看次数

Const变量在C中用指针改变

该变量i被声明为const但我仍然可以使用指向它的内存位置的指针来更改该值.这怎么可能?

int main()
{

    const int i = 11;
    int *ip = &i;
    *ip=100;
    printf("%d\n",*ip);
    printf("%d\n",i);
}
Run Code Online (Sandbox Code Playgroud)

当我编译时,我得到这个警告:

test.c: In function ‘main’:
test.c:11: warning: initialization discards qualifiers from pointer target type
Run Code Online (Sandbox Code Playgroud)

输出就是这个

100
100
Run Code Online (Sandbox Code Playgroud)

c c++ pointers const

4
推荐指数
2
解决办法
1298
查看次数

C中的整数类型

假设我希望编写一个C程序(C99或C2011),我希望它是完全可移植的,而不是绑定到特定的体系结构.

看来,我会那么想使从旧的整数类型(一刀两断int,long,short)和朋友使用 int8_t,uint8_t,int32_t等(可能使用了leastfast版本)中.

什么是返回类型main?或者我们必须跟上int?标准是否要求int

GCC-4.2允许我写

#include <stdint.h>
#include <stdio.h>
int32_t main() {
    printf("Hello\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但我不能使用uint32_t,甚至int8_t因为我得到了

hello.c:3: warning: return type of ‘main’ is not ‘int’
Run Code Online (Sandbox Code Playgroud)

这是因为typedef,毫无疑问.看来这是我们不得不使用未指定大小类型的一种情况,因为它不是真正可移植的,除非我们将返回类型留给目标体系结构.这种解释是否正确?int在代码库中只有"只有一个"的旧版本似乎很奇怪,但我很乐意务实.

c int c99 c11

4
推荐指数
2
解决办法
1730
查看次数

我可以从这个Elm表达式中删除lambda吗?

这是一个完整的Elm脚本,它将一堆元组放入HTML <ul>元素中.

import Html exposing (ul, li, text)
import List exposing (map)

values = [(1,2,3), (4,5,6), (7,8,9)]

main =
  ul [] (values |> map (\t -> li [] [text(toString(t))]))
Run Code Online (Sandbox Code Playgroud)

我喜欢|>在可能的情况下使用其他高阶运算符,但鉴于t上面表达式中相对较深的嵌套,我无法找到表达这一行的好方法.在Elm中是否有更高阶的运算符允许\tlambda不必要?

我意识到使用lambda可能更具可读性,但是想知道这里应该使用什么样的组合器,因为toString调用是在列表中.

lambda combinators higher-order-functions elm

4
推荐指数
1
解决办法
127
查看次数

为什么Swift将这个Grapheme Cluster计为两个字符而不是一个?

一般来说,Swift 非常聪明地将字形集合计为单个字符.例如,如果我想制作黎巴嫩旗帜,我可以将两个Unicode字符组合在一起

  • U + 1F1F1区域指标符号L
  • U + 1F1E7区域指标符号字母B

正如预期的那样,这是Swift中的一个角色:

let s = "\u{1f1f1}\u{1f1e7}"
assert(s.characters.count == 1)
assert(s.utf16.count == 4)
assert(s.utf8.count == 8)
Run Code Online (Sandbox Code Playgroud)

但是,假设我想制作Fitzpatrick Type-5的自行车表情符号.如果我结合起来

  • U + 1F6B4自行车手
  • U + 1F3FE EMOJI MODIFIER FITZPATRICK TYPE-5

Swift将此组合计为两个字符!

let s = "\u{1f6b4}\u{1f3fe}"
assert(s.characters.count == 2)   // <----- WHY?
assert(s.utf16.count == 4)
assert(s.utf8.count == 8)
Run Code Online (Sandbox Code Playgroud)

为什么这两个字符而不是一个?

为了说明我期望它为1的原因,请注意该群集实际上被解释为有效的表情符号:

在此输入图像描述

unicode emoji grapheme swift

4
推荐指数
1
解决办法
1237
查看次数

如何从 Rails 4 中的字符串中删除文件扩展名?

我正在尝试从具有以下结构的字符串中删除扩展名:

name.stl
Run Code Online (Sandbox Code Playgroud)

我发现我可以使用该basename方法来获取字符串。问题是我没有使用文件路径,而且我已经有了带有名称的字符串。我只需要从字符串中删除扩展名。

在我看来,正则表达式将是一个很好的选择来检测点并删除从它到最后的所有内容。

如何使用正则表达式在 Ruby on Rails 4 上执行此操作?

ruby regex ruby-on-rails

4
推荐指数
2
解决办法
3964
查看次数

如何使用 SQLAlchemy 使用配置创建 Postgres GIN 索引?

我在 Postgres 表上手动创建了一个 GIN 索引,如下所示:

create index idx_ib_keywords on stuff using gin(to_tsvector('english'::regconfig, keywords));
Run Code Online (Sandbox Code Playgroud)

它被创建得很好:

\d info_block_template
                 Table info_block_template
   Column   | Type   | Collation | Nullable | Default
------------+--------+-----------+----------+--------
.
.
.
 keywords   | text   |           | not null | 
.
.
.
Indexes:
    .
    .    "idx_ib_keywords" gin (to_tsvector('english'::regconfig, keywords))
Run Code Online (Sandbox Code Playgroud)

现在,我正在使用 alembic 进行迁移。当我使用 alembic 自动生成迁移时,不会自动生成 GIN 索引。不用担心,自动发电机不应该是完美的。所以我想进去手工编辑迁移文件。

我已经搜索了如何做到这一点,我能找到的最接近的是我关注的这个页面,并写道

op.create_index(op.f('idx_ib_keywords'), 'stuff', ['keywords'], postgresql_using='gin')
Run Code Online (Sandbox Code Playgroud)

进入我的迁移脚本。当我应用此迁移时,出现错误:

sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedObject) 数据类型文本没有用于访问方法“gin”的默认运算符类 提示:您必须为索引指定运算符类或为数据类型定义默认运算符类。

这是一个很好的错误信息;它告诉我我需要做这to_tsvector件事。但是,我不知道如何在 SQLAlchemy 中做到这一点。

有没有一种简单的方法可以在 SQLAlchemy 中编写它,还是应该放入迁移文件中的原始 SQL?

postgresql full-text-search sqlalchemy alembic

4
推荐指数
1
解决办法
1573
查看次数