小编Sol*_*cko的帖子

打破嵌套(for)循环的最佳方法是什么?

在Javascript中打破嵌套循环的最佳方法是什么?

//Write the links to the page.
for (var x = 0; x < Args.length; x++)
{
   for (var Heading in Navigation.Headings)
   {
      for (var Item in Navigation.Headings[Heading])
      {
         if (Args[x] == Navigation.Headings[Heading][Item].Name)
         {
            document.write("<a href=\"" 
               + Navigation.Headings[Heading][Item].URL + "\">" 
               + Navigation.Headings[Heading][Item].Name + "</a> : ");
            break; // <---HERE, I need to break out of two loops.
         }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

javascript loops break nested-loops

397
推荐指数
9
解决办法
22万
查看次数

C中最常见的命名约定是什么?

C中常用的命名约定是什么?我知道至少有两个:

  1. 具有lower_case_functions的GNU/linux/K&R
  2. ?名称 ?使用UpperCaseFoo函数

我只在这里谈论C.我们的大多数项目都是使用C的小型嵌入式系统.

这是我计划用于下一个项目的那个:


C命名惯例

Struct              TitleCase
Struct Members      lower_case or lowerCase

Enum                ETitleCase
Enum Members        ALL_CAPS or lowerCase

Public functions    pfx_TitleCase (pfx = two or three letter module prefix)
Private functions   TitleCase
Trivial variables   i,x,n,f etc...
Local variables     lower_case or lowerCase
Global variables    g_lowerCase or g_lower_case (searchable by g_ prefix)
Run Code Online (Sandbox Code Playgroud)

c naming-conventions

114
推荐指数
8
解决办法
14万
查看次数

SystemError:父模块''未加载,无法执行相对导入

我有以下目录:

myProgram
??? app
    ??? __init__.py
    ??? main.py 
    ??? mymodule.py
Run Code Online (Sandbox Code Playgroud)

mymodule.py:

class myclass(object):

def __init__(self):
    pass

def myfunc(self):
    print("Hello!")
Run Code Online (Sandbox Code Playgroud)

main.py:

from .mymodule import myclass

print("Test")
testclass = myclass()
testclass.myfunc()
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,我得到了这个错误:

Traceback (most recent call last):
  File "D:/Users/Myname/Documents/PycharmProjects/myProgram/app/main.py", line 1, in <module>
    from .mymodule import myclass
SystemError: Parent module '' not loaded, cannot perform relative import
Run Code Online (Sandbox Code Playgroud)

这有效:

from mymodule import myclass
Run Code Online (Sandbox Code Playgroud)

但是当我输入时,我没有自动完成,并且有一条消息:"未解析的引用:mymodule"和"未解析的引用:myclass".在我正在处理的其他项目中,我收到错误:"ImportError:没有名为'mymodule'的模块.

我能做什么?

python python-3.x

93
推荐指数
3
解决办法
11万
查看次数

C的main()函数的有效签名是什么?

C中主要功能的有效签名究竟是什么?我知道:

int main(int argc, char *argv[])
Run Code Online (Sandbox Code Playgroud)

还有其他有效的吗?

c signature entry-point language-lawyer function-prototypes

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

分配前进行冗余比较和“如果”

这是示例:

if(value != ageValue) {
  ageValue = value;
}
Run Code Online (Sandbox Code Playgroud)

我的意思是,如果我们将一个变量的值分配给另一个变量,为什么还要检查它们是否具有相同的值?

这让我感到困惑。这里是更广泛的上下文:

private double ageValue;
public double Age {
  get {
    return ageValue;
  }

  set {
    if(value != ageValue) {
      ageValue = value;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

.net c# if-statement

52
推荐指数
4
解决办法
4822
查看次数

fseek() 函数中的零偏移量与 SEEK_CUR 有什么用?

while (fread(&product, sizeof(Product), 1, file) == 1) {
        product.price *= 2.0;
        fseek(file, -sizeof(Product), SEEK_CUR);
        fwrite(&product, sizeof(Product), 1, file);
        fseek(file, 0, SEEK_CUR);
}
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,我尝试将二进制文件中每个产品的价格加倍,其中每个记录都是 Product 结构的实例。当我运行此代码时,它正确更新了文件中的所有价格。

据我所知,fread自动将文件指针移动到下一条记录。使用第一个fseek,代码将文件指针移回到记录的开头。然后它使用 更新它fwritefwrite自动将文件指针移动到下一条记录。在while循环中,fread应该继续读取下一条记录,以此类推。

这里似乎fseek(file, 0, SEEK_CUR);没有必要。但是,如果我删除它,代码就会进入无限循环。我不明白为什么会发生这种情况。

我尝试使用 观察文件指针的值ftell。但我没有看到它的值有任何变化fseek(file, 0, SEEK_CUR);

c io file fseek language-lawyer

49
推荐指数
2
解决办法
2486
查看次数

在编译时计算函数参数计数

我有一个 C 库(带有 C 头文件),它存在于两个不同的版本中。

其中之一具有如下所示的函数:

int test(char * a, char * b, char * c, bool d, int e);
Run Code Online (Sandbox Code Playgroud)

另一个版本看起来像这样:

int test(char * a, char * b, char * c, bool d)
Run Code Online (Sandbox Code Playgroud)

(为此, e 不是作为函数参数给出的,而是在函数本身中硬编码的)。

库或其头文件没有定义/包含任何检查库版本的方法,所以我不能只使用#ifor#ifdef来检查版本号。

有什么办法可以编写一个可以用这个库的两个版本编译的C程序,这取决于编译程序时安装的是哪个版本?这样,想要编译我的程序的贡献者可以自由使用库的任一版本,并且该工具可以使用任一版本进行编译。

所以,澄清一下,我正在寻找这样的(或类似的):

#if HAS_ARGUMENT_COUNT(test, 5)
    test("a", "b", "c", true, 20);
#elif HAS_ARGUMENT_COUNT(test, 4)
    test("a", "b", "c", true);
#else
    #error "wrong argument count"
#endif
Run Code Online (Sandbox Code Playgroud)

有没有办法在C中做到这一点?我想不出办法。

该库将是 libogc ( https://github.com/devkitPro/libogc ),它if_config在不久前改变了它的定义,我想让我的程序同时使用旧版本和新版本。我在库中找不到任何版本标识符。目前我使用的是 GCC 8.3 的修改版本。

c overloading compile-time

46
推荐指数
5
解决办法
2555
查看次数

如何在其他呼叫运行时以编程方式合并呼叫(电话会议)

我的要求是这样的:假设我在那个时间拨打一个号码,我想以编程方式拨打另一个号码.到目前为止,我所做的是:我可以拨打特定号码,而某些电话已经开始.例如,假设我呼叫号码123并且在1分钟后(通过使用Alarm Manger我触发事件来呼叫另一个号码456并且已完成!

Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:456"));
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

我正在使用这样的意图打电话,现在我能够看到手机上的屏幕上有一个按钮来合并通话:

手机截图

在此图像中,您可以看到合并呼叫的按钮.现在,当用户点击合并时,它将合并所有3个呼叫.我想以编程方式进行,而不是使用用户界面.

api merge android

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

如何使用Angular组件观察组件绑定更改

如何监听角度组件绑定更改并执行操作?

angular.module('myapp')
    .component('myComponent', {
        templateUrl: 'some.html',
        controller: MyController,
        controllerAs: 'myCtrl',
        bindings: {
            items: '<'
        }
    });
Run Code Online (Sandbox Code Playgroud)

现在当items我想要使​​用此值执行其他操作时,我该
怎么办?

javascript angularjs typescript angularjs-components

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

zip_longest 始终为左侧列表

我知道该zip函数(它将根据最短列表进行压缩)和zip_longest(它将根据最长列表进行压缩),但是我将如何根据第一个列表进行压缩,无论它是否是最长的?

例如:

Input:  ['a', 'b', 'c'], [1, 2]
Output: [('a', 1), ('b', 2), ('c', None)]
Run Code Online (Sandbox Code Playgroud)

但是也:

Input:  ['a', 'b'], [1, 2, 3]
Output: [('a', 1), ('b', 2)]
Run Code Online (Sandbox Code Playgroud)

这两种功能是否存在于一个函数中?

python iterator

33
推荐指数
4
解决办法
3198
查看次数