程序设计

专业和发烧友程序员的问答

28
函数式编程会取代GoF设计模式吗?
自从我去年开始学习F#和OCaml以来,我已经阅读了大量文章,这些文章坚持认为设计模式(尤其是Java语言)是命令式语言中缺少功能的变通方法。我发现一篇文章提出了相当有力的主张: 我遇到的大多数人都阅读 过《四人帮》(GoF)的《设计模式》一书。任何自以为是的程序员都会告诉您,该书与语言无关,并且无论您使用哪种语言,该模式通常适用于软件工程。这是一个崇高的主张。不幸的是,它与事实相去甚远。 函数式语言极富表现力。在一种功能性语言中,因为该语言可能非常高级,所以不需要设计模式,因此您最终只能使用可以消除所有设计模式的概念进行编程。 函数式编程(FP)的主要功能包括一流的功能,柯里化的,不变的值等。在我看来,OO设计模式无法近似所有这些功能。 此外,在支持OOP的功能语言(例如F#和OCaml)中,对我来说显而易见的是,使用这些语言的程序员将使用与其他OOP语言相同的设计模式。实际上,现在我每天都使用F#和OCaml,并且在这些语言中使用的模式与在用Java编写时使用的模式之间没有显着差异。 函数式编程消除了对OOP设计模式的需求,这有何道理?如果是这样,您是否可以发布或链接到典型的OOP设计模式及其等效功能的示例?


26
在Python中以扩展名.txt查找目录中的所有文件
这个问题的答案是社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 Наэтотвопросестьответына 堆栈溢出нарусском:Выводфайловсопределённымрасширением 如何.txt在python中具有扩展名的目录中找到所有文件?
1043 python  file-io 

30
参数化SQL IN子句
如何对包含IN子句的查询进行参数化,像这样的子句? SELECT * FROM Tags WHERE Name IN ('ruby','rails','scruffy','rubyonrails') ORDER BY Count DESC 在此查询中,参数的数量可以为1到5之间的任意值。 我不希望对此(或XML)使用专用的存储过程,但是如果有一些特定于SQL Server 2008的优雅方法,我可以接受。


12
如何将--no-ri --no-rdoc设置为gem install的默认设置?
我不使用安装在我的机器或我处理的服务器中的gem的RI或RDoc输出(我使用其他文档编制方式)。 默认情况下,我安装的每个gem都会安装RI和RDoc文档,因为我忘记了set --no-ri --no-rdoc。 有没有办法将这两个标志设置为默认值?
1040 ruby  rubygems 


10
分组功能(tapply,by,aggregate)和* apply系列
每当我想在R中执行“ map” py任务时,我通常都会尝试使用该apply系列中的函数。 但是,我从未完全理解它们之间的区别-{ sapply,lapply等等} 如何将函数应用于输入/分组输入,输出将是什么样,甚至输入是什么-所以我经常只是遍历所有这些,直到我得到我想要的。 谁能解释什么时候使用哪一个? 我目前(可能不正确/不完整)的理解是... sapply(vec, f):输入是向量。输出是向量/矩阵,其中element i是f(vec[i]),如果f有多元素输出,则为您提供矩阵 lapply(vec, f):与相同sapply,但输出是列表? apply(matrix, 1/2, f):输入是一个矩阵。输出是一个向量,其中element i是f(矩阵的行/ col i) tapply(vector, grouping, f):输出是一个矩阵/数组,其中矩阵/数组中的元素是向量f分组g中的值,并g被推送到行/列名 by(dataframe, grouping, f):让g成为一个分组。适用f于组/数据框的每一列。漂亮地打印f每列的分组和值。 aggregate(matrix, grouping, f):类似于by,但不是将输出漂亮地打印出来,聚合将所有内容粘贴到一个数据框中。 附带的问题:我还没有学会摆弄或重塑-是否会全部取代plyr或reshape全部取代?
1040 r  lapply  sapply  tapply  r-faq 



30
如何在Python中反转列表?
如何在Python中执行以下操作? array = [0, 10, 20, 40] for (i = array.length() - 1; i >= 0; i--) 我需要一个数组的元素,但是要从头到尾。
1036 python  list 


30
Android 8:不允许使用明文HTTP流量
我收到来自使用Android 8的用户的报告,称我的应用程序(使用后端供稿)未显示内容。经过调查,我发现以下异常发生在Android 8上: 08-29 12:03:11.246 11285-11285/ E/: [12:03:11.245, main]: Exception: IOException java.io.IOException: Cleartext HTTP traffic to * not permitted at com.android.okhttp.HttpHandler$CleartextURLFilter.checkURLPermitted(HttpHandler.java:115) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:458) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:127) at com.deiw.android.generic.tasks.AbstractHttpAsyncTask.doConnection(AbstractHttpAsyncTask.java:207) at com.deiw.android.generic.tasks.AbstractHttpAsyncTask.extendedDoInBackground(AbstractHttpAsyncTask.java:102) at com.deiw.android.generic.tasks.AbstractAsyncTask.doInBackground(AbstractAsyncTask.java:88) at android.os.AsyncTask$2.call(AsyncTask.java:333) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at java.lang.Thread.run(Thread.java:764) (我删除了程序包名称,URL和其他可能的标识符) 在Android 7及更低版本上,一切正常,我未android:usesCleartextTraffic在Manifest中进行设置(并且将其设置为true无济于事,无论如何这都是默认值),我也不使用网络安全信息。如果我致电NetworkSecurityPolicy.getInstance().isCleartextTrafficPermitted(),它将使用相同的apk文件返回旧版本的falseAndroid 8 true。我试图在Google有关Android O的信息中找到对此的提及,但没有成功。
1035 android  http  https 

30
片段中的findViewById
我试图在一个Fragment中创建一个ImageView,该ImageView引用我在Fragment的XML中创建的ImageView元素。但是,该findViewById方法仅在我扩展Activity类时才有效。无论如何,我也可以在Fragment中使用它吗? public class TestClass extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ImageView imageView = (ImageView)findViewById(R.id.my_image); return inflater.inflate(R.layout.testclassfragment, container, false); } } 该findViewById方法上有一个错误,指出该方法未定义。

5
如何在Git中合并特定的提交
我已经从GitHub的存储库中分支了一个分支,并提交了一些特定于我的东西。现在,我发现原始存储库具有的出色功能,该功能位于HEAD。 我只想合并它而无需先前的提交。我该怎么办?我知道如何合并所有提交: git branch -b a-good-feature git pull repository master git checkout master git merge a-good-feature git commit -a git push
1034 git  merge 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.