限制表列,保留键

问题描述

我在“ Q技巧”中发现了一种在表中保留键的技术。例如,这对于lj右表中的限制列很有用,而无需重新应用键。使用each

q)show t:(`c1`c2!1 2;`c1`c2!3 4)!(`c3`c4`c5!30 40 50;`c3`c4`c5!31 41 51)
c1 c2| c3 c4 c5
-----| --------
1  2 | 30 40 50
3  4 | 31 41 51
q)`c3`c4#/:t
c1 c2| c3 c4
-----| -----
1  2 | 30 40
3  4 | 31 41

我试图理解为什么它保留了表key的{​​{1}}部分:

t

但是在这种情况下,q){-3!x}/:t '/: [0] {-3!x}/:t ^ 没有显示如何处理键表的q

那为什么each row语法对于键控表如此工作?在code.kx.com文档中的任何地方都有提及吗?

Upd1 :我发现了一个#/:tcode.kx.com上的键控表的情况,但这是关于选择行而不是列的情况。

解决方法

如果将键表视为字典(它是字典),则它与以下内容没有什么不同:

$color: #bada55;

body {
    height: 100vh;
    width: 100vw;
    background-color: #222;
    color: #fff;
}

.container {
    padding: 2rem 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.nav {
    display: flex;


    li {
        list-style: none;
        font-weight: bold;
        font-size: 2rem;
        margin: 20px;
        padding: 10px;
        position: relative;
        transition: 0.2s;

        &:hover {
            color: #bada55;
            transition: 0.2s;


            &:before {
                content: "";
                background-color: #bada55;
                width: 100%;
                height: 3px;
                position: absolute;
                display: block;
                top: 4rem;
                left: 0;
                overflow: hidden;
                animation: slide 0.5s;
                transition: 0.2s;
            }
        }
    }
}

@keyframes slide {
    0% {
        opacity: 0;
        transform: translateX(-20px);
        width: 0%;
    }

    100% {
        opacity: 1;
        transform: translateX(1);
        width: 100%
    }
}

q)2*/:`a`b!1 2
a| 2
b| 4

将功能应用于字典的每个元素时,键将保留。在您的示例中,要应用的功能是在字典上使用take,例如:

q){x+1} each `a`b!1 2
a| 2
b| 3

对每一行执行该操作会返回字典列表,而字典本身就是一个表。

另外,您的其他尝试也将如下:

q)`c3`c4#first t
c3| 30
c4| 40

因此服用{-3!x}@/:t

并非唯一 ,
{-3!x}/:t

每个权利都需要两个参数,因此这将无法工作。

由于表是带键的,因此将其视为字典。每个权限都会迭代字典值,因此会忽略主字典的键(=键列)。要查看正在发生的事情,可能会有助于查看使用每个时发生的事情:

q)){-3!x} each t
c1 c2|
-----| --------------------
1  2 | "`c3`c4`c5!30 40 50"
3  4 | "`c3`c4`c5!31 41 51"

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...