- 前端three.js的Sprite模拟下雪动画效果
qq_35430208
three.js前端javascript三维场景中下雪效果threejs实现下雪效果
一、效果如图所示:二、原理同下雨一样三、完整代码:index.jsimport*asTHREEfrom'three';import{OrbitControls}from'three/addons/controls/OrbitControls.js';importmodelfrom'./model.js';//模型对象//场景constscene=newTHREE.Scene();scene.add
- MATLAB中的控制系统工具箱:深入指南与实践应用
2401_85812026
matlab
MATLAB的控制系统工具箱(ControlSystemToolbox)是一个强大的工具集,它为工程师和研究人员提供了全面的控制系统设计、分析和仿真解决方案。本文将详细介绍如何在MATLAB中使用控制系统工具箱,包括系统建模、控制器设计、系统仿真和分析等方面。1.系统建模在控制系统工具箱中,可以通过多种方式对系统进行建模,包括状态空间模型、传递函数模型和零极点模型。1.1状态空间模型状态空间模型是
- WPF实现简单的9宫格键盘移动方块
no longer
WPF学习wpf
实现用电脑键盘上下左右实现方块的移动demoxaml文件代码:后台代码usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows;usingSystem.Windows.Controls;usingSyste
- QT之QML从入门到精通(第二章)
only-lucky
qt开发语言
本章介绍QML部件(component)和加载(Loader)的基本使用引言importQtQuick2.12importQtQuick.Window2.12importQtQuick.Controls2.12Window{visible:truewidth:640height:480title:qsTr("HelloWorld")Component.onCompleted:{console.lo
- DropDownList控件的使用(方法,属性)
素年槿夏
C#
在.net中,DropDownList和ListBox是最常用的两个LIST控件一、DropDownList命名空间:System.Web.UI.WebControls程序集:System.Web(在system.web.dll中)一些常用的属性:DataMember当数据源包含多个不同的数据项列表时,获取或设置数据绑定控件绑定到的数据列表的名称。(从DataBoundControl继承。)Dat
- three.js 加载STL模型补充遇到的问题
代码搬运工娃哈哈呀娃哈哈
前端
旋转问题three.js在开发的时候找到的指导文档提到的都是场景相机渲染初始化,相机控制器默认是轨道控制器OrbitControls。在使用中若想各个方向都可以用鼠标旋转只有水平方向能够无限旋转,垂直方向有俯仰角±90°的限制,找了很久才知道TrackballControls轨迹球控制器,可以实现水平垂直旋转,但是也存在缺点,若是模型加载上下左右前后视图的时候,左右前后没有影响,但是在移动到上和下
- VCS(版本控制系统)
坤坤宝贝仔
未解决VCSDVCSsvngitCVCS版本控制系统版本控制svngit
版本控制系统(versioncontrolsystem),是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。用的比较多的如svn,git等。为了让不同系统上的开发者能够协同工作,集中化的版本控制系统应运而生(CVCS)。这类系统都有一个单一的集中管理的服务器,保存所有文件的修订版本。而协同工作
- 3.js - 鸡蛋托
一嘴一个橘子
three.jsthree.js
import*asTHREEfrom'three'import{OrbitControls}from'three/examples/jsm/controls/OrbitControls'import{GUI}from'three/examples/jsm/libs/lil-gui.module.min.js'//@ts-ignoreimportbasicVertexShaderfrom'./sha
- 网络适配器输入的ip已经分配给另一个适配器
Zheng113
someproblems网络linux
背景:重装虚拟机后,在window网络连接VM8无法无法设置相同ip地址步骤:1.去注册表,找到这个路径:\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces,找到你冲突的IP地址,改动它为1.2.3.42.大功告成!!!祝您一切顺利,虽然我要被虚拟机搞崩溃了
- autoescape-django模板中HTML转义
HeJD
摘一段文档:Controlsthecurrentauto-escapingbehavior.Thistagtakeseitheronoroffasanargumentandthatdetermineswhetherauto-escapingisineffectinsidetheblock.Theblockisclosedwithanendautoescapeendingtag.Whenauto-e
- Qt/QML学习-Drawer
放假当宅宅
Qt/QML学习qt学习
QML学习Drawer例程视频讲解代码main.qmlimportQtQuick2.15importQtQuick.Window2.15importQtQuick.Controls2.15Window{width:640height:480visible:truetitle:qsTr("Drawer")Drawer{id:drawerwidth:parent.width/4height:paren
- js制作的炫酷3D太阳系行星运行效果
空中湖
jsjavascriptcss前端
想象着打开网页就能浏览太阳系行星的运行情况,促进我们更好的了解这个宇宙星空,于是找到了这样一段代码可以完美的实现这个功能,通过css和js就可以实现在网页上展示一个完美的太阳系行星的运行情况,效果炫酷,废话不多说,先上个图给大家看看:具体的代码如下index.html3DCSSSolarSystemData3DCSSSolarSystemControlsSunMercuryVenusEarthMa
- python打包中文报错,解决python3+Gooey使用pyinstaller打包时无法输出中文的问题
wesinnn
python打包中文报错
问题出处代码如下:#-*-coding:utf-8-*-fromgooeyimportGooey,GooeyParserdefrun(keywords):print(keywords)@Gooey(richtext_controls=True,#打开终端对颜色支持language='chinese',header_show_title=False,program_name="test",#程序名称
- git是什么?git的五个命令,git和svn的区别
茶卡盐佑星_
gitsvn
Git是什么?Git是一个开源的分布式版本控制系统(DistributedVersionControlSystem,简称DVCS),由LinusTorvalds在2005年开发。它旨在高效地处理从很小到非常大的项目版本管理,可以有效、高速地追踪项目的变化历史,支持多人协作开发。Git强调速度和数据完整性,其内容存储使用SHA-1哈希算法,确保代码内容的完整性,并在遇到磁盘故障和网络问题时降低对版本
- linux做个人云二盘同步云,【phpEasyVCS】超好用的懒人webdav (based on PHP)个人云服服务搭建软件, 可用于zotero文献同步...
顺数人
linux做个人云二盘同步云
IntroductionphpEasyVCSisasimpleversioncontrolsystem(VCS)andWebDAVserverwithminimalhostingrequirements:PHP5.2+Nodatabaseisneeded.FilescanbeviewedanduploadedwithabrowserorbyWebDAV.License:GPLv3Ifyouwant
- 【Three.js基础学习】19.Custom models with Blender
蚕食我的耐心
three.js基础学习学习blender
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档前言blender模型资源:【blender】一个汉堡包-CSDN博客一、代码import'./style.css'import*asTHREEfrom'three'import{OrbitControls}from'three/examples/jsm/controls/OrbitControls.js'import{GLTFLoa
- thinkphp报错No input file specified. (对于隐藏url中的index.php 是如何做到的?)
S_Yes
PHPthispanidtransmarkspanidtransmarksty
thinkphp51.去除httpd.conf文件中"#LoadModulerewrite_modulemodules/mod_rewrite.so"前面的"#"号;2.修改httpd.conf文件中的AllowOverrideNone为AllowOverrideAll,目的是支持.htaccess文件;##AllowOverridecontrolswhatdirectivesmaybeplace
- Verilog刷题笔记60
十六追梦记
笔记fpga开发
题目:Exams/2013q2bfsmConsiderafinitestatemachinethatisusedtocontrolsometypeofmotor.TheFSMhasinputsxandy,whichcomefromthemotor,andproducesoutputsfandg,whichcontrolthemotor.Thereisalsoaclockinputcalledclk
- 前端音视频以及(关于收集用户信息的标签)
小刘|
前端
音频标签(audio)基本介绍HTML5中的标签用于在网页中嵌入音频内容。它提供了一种简单的方式来播放音频文件,无需依赖第三方插件。常见的音频格式包括MP3、WAV、OGG等。不同的浏览器对音频格式的支持可能会有所不同,为了确保在各种浏览器中都能正常播放,建议提供多种格式的音频文件。属性详解controls:当添加这个属性时,会在浏览器中显示音频播放器的控制条,包括播放/暂停按钮、进度条、音量控制
- 计算机专业英语常用词汇整理
平平无奇的小颜
软件设计师中级备考服务器前端网络
软考备考,整理了计算机专业英语词汇Aaccesscontrol访问控制AccessControlList(ACL)访问控制列表ActiveGroup活动组ActiveServerPages(ASP)一种服务器端的脚本环境,可以用来创建动态Web页或编译Web应用程序ActiveXControlsActiveX控件activity活动AddressResolutionProtocol(ARP)地址解
- Qt/QML学习-SpinBox
放假当宅宅
Qt/QML学习qt学习
QML学习SpinBox例程视频讲解代码main.qmlimportQtQuick2.15importQtQuick.Window2.15importQtQuick.Controls2.15Window{width:640height:480visible:truetitle:qsTr("SpinBox")SpinBox{id:spinBoxanchors.centerIn:parentfrom:
- latex报错:Undefined control sequence.解决办法
小桥流水---人工智能
人工智能机器学习算法templatemethod
经过分析是缺宏包了,\usepackage{amsmath}。总结在VSCode中编写LaTeX文档时,如果你遇到了“Undefinedcontrolsequence”错误,这通常意味着你尝试使用的某个LaTeX命令或宏没有被定义。在LaTeX中,很多公式和符号需要特定的宏包(package)来支持。例如,amsmath宏包为数学公式提供了许多有用的工具和命令。如果你在文档中使用了amsmath宏
- ASP.NET使用FileUpLoad控件实现图片上传并显示
pcdd
.NETasp.net
后端代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.IO;namespaceex{publicpartialclassWebForm1:System.Web.UI.
- WPF知识点全攻略06- WPF逻辑树(Logical Tree)和可视树(Visual Tree)
weixin_30834783
介绍概念之前,先来分析一段代码:xaml代码如下:ClackClackxaml.cs代码如下:usingSystem.Windows;usingSystem.Windows.Controls;namespaceWpfApp1{//////MainWindow.xaml的交互逻辑///publicpartialclassMainWindow:Window{publicMainWindow(){Ini
- [ v1.3 基本搞定 ] Delphi UDP + TCP 通信问题
holen
DELPHIDELPHI
主体思路:先由管理机发UDP命令到客户端,客户端在获取主机IP后,再建立TCP连接,这样就不用手工去客户端设主机IP了,而且主机IP可随意变化。管理机(TCP服务端/UDP客户端)源码:unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,ComCtrls,
- 若依/vue2引入threejs展示glb/gltf模型,以及画布截图功能
怎么吃不饱捏
vue.jsjavascript前端
需求背景:前端对glb/gltf模型进行线上管理,支持上传本地模型,每次上传后展示模型,在提交给后端的时候带上该模型的截图,具体效果不便展示,相关代码如下:1.安装依赖//"three":"^0.162.0",npminstallthree2.引入依赖,初始化画布并渲染模型//1.引入import*asTHREEfrom"three";import{OrbitControls}from"three
- chrales抓包常见问题总结
Duke_Guo
1.pc端点击help安装ssl证书2.信任证书3.连接手机代理4.安装手机证书5.信任手机证书-设置-点击通用-点击文件描述-安装信任charles证书6.信任证书-设置-点击通用-点击关于本机-点击证书信任设置7.添加https端口address:*port:4438.点击返回,电脑中Charles会出现一个提示框,点击allow。如果没有出现点击Proxy->Accesscontrolset
- 无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同。如果服务器位于远程计算机上,请检查 ...
Allen_f58e
无法向会话状态服务器发出会话状态请求。请确保ASP.NETStateService(ASP.NET状态服务)已启动,并且客户端端口与服务器端口相同。如果服务器位于远程计算机上,请检查HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection的值,确保服务器接受远
- iOS 改变左右侧距离
王家小雷
(void)initNavBar{UIButton*addBtn=[[UIButtonalloc]initWithFrame:CGRectMake(0,0,24,24)];[addBtnsetImage:[UIImageimageNamed:@"NewBack"]forState:UIControlStateNormal];[addBtnsetContentHorizontalAlignment:
- Avalonia学习(二十九)-仪表
jason成都
学习Avalonia
Avalonia制作仪表盘,把控件给大家演示一下,Avalonia有三类自定义控件,分别是用户控件、模版控件、自主控件。前面已经很多用户控件了,这个是演示模版控件,另外一种不知道哪种情况下使用。前端代码:-->后台代码:usingAvalonia;usingAvalonia.Controls;usingAvalonia.Controls.Shapes;usingAvalonia.Media;usi
- 关于旗正规则引擎中的MD5加密问题
何必如此
jspMD5规则加密
一般情况下,为了防止个人隐私的泄露,我们都会对用户登录密码进行加密,使数据库相应字段保存的是加密后的字符串,而非原始密码。
在旗正规则引擎中,通过外部调用,可以实现MD5的加密,具体步骤如下:
1.在对象库中选择外部调用,选择“com.flagleader.util.MD5”,在子选项中选择“com.flagleader.util.MD5.getMD5ofStr({arg1})”;
2.在规
- 【Spark101】Scala Promise/Future在Spark中的应用
bit1129
Promise
Promise和Future是Scala用于异步调用并实现结果汇集的并发原语,Scala的Future同JUC里面的Future接口含义相同,Promise理解起来就有些绕。等有时间了再仔细的研究下Promise和Future的语义以及应用场景,具体参见Scala在线文档:http://docs.scala-lang.org/sips/completed/futures-promises.html
- spark sql 访问hive数据的配置详解
daizj
spark sqlhivethriftserver
spark sql 能够通过thriftserver 访问hive数据,默认spark编译的版本是不支持访问hive,因为hive依赖比较多,因此打的包中不包含hive和thriftserver,因此需要自己下载源码进行编译,将hive,thriftserver打包进去才能够访问,详细配置步骤如下:
1、下载源码
2、下载Maven,并配置
此配置简单,就略过
- HTTP 协议通信
周凡杨
javahttpclienthttp通信
一:简介
HTTPCLIENT,通过JAVA基于HTTP协议进行点与点间的通信!
二: 代码举例
测试类:
import java
- java unix时间戳转换
g21121
java
把java时间戳转换成unix时间戳:
Timestamp appointTime=Timestamp.valueOf(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:m
- web报表工具FineReport常用函数的用法总结(报表函数)
老A不折腾
web报表finereport总结
说明:本次总结中,凡是以tableName或viewName作为参数因子的。函数在调用的时候均按照先从私有数据源中查找,然后再从公有数据源中查找的顺序。
CLASS
CLASS(object):返回object对象的所属的类。
CNMONEY
CNMONEY(number,unit)返回人民币大写。
number:需要转换的数值型的数。
unit:单位,
- java jni调用c++ 代码 报错
墙头上一根草
javaC++jni
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000777c3290, pid=5632, tid=6656
#
# JRE version: Java(TM) SE Ru
- Spring中事件处理de小技巧
aijuans
springSpring 教程Spring 实例Spring 入门Spring3
Spring 中提供一些Aware相关de接口,BeanFactoryAware、 ApplicationContextAware、ResourceLoaderAware、ServletContextAware等等,其中最常用到de匙ApplicationContextAware.实现ApplicationContextAwaredeBean,在Bean被初始后,将会被注入 Applicati
- linux shell ls脚本样例
annan211
linuxlinux ls源码linux 源码
#! /bin/sh -
#查找输入文件的路径
#在查找路径下寻找一个或多个原始文件或文件模式
# 查找路径由特定的环境变量所定义
#标准输出所产生的结果 通常是查找路径下找到的每个文件的第一个实体的完整路径
# 或是filename :not found 的标准错误输出。
#如果文件没有找到 则退出码为0
#否则 即为找不到的文件个数
#语法 pathfind [--
- List,Set,Map遍历方式 (收集的资源,值得看一下)
百合不是茶
listsetMap遍历方式
List特点:元素有放入顺序,元素可重复
Map特点:元素按键值对存储,无放入顺序
Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)
List接口有三个实现类:LinkedList,ArrayList,Vector
LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身
- 解决SimpleDateFormat的线程不安全问题的方法
bijian1013
javathread线程安全
在Java项目中,我们通常会自己写一个DateUtil类,处理日期和字符串的转换,如下所示:
public class DateUtil01 {
private SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public void format(Date d
- http请求测试实例(采用fastjson解析)
bijian1013
http测试
在实际开发中,我们经常会去做http请求的开发,下面则是如何请求的单元测试小实例,仅供参考。
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.httpclient.HttpClient;
import
- 【RPC框架Hessian三】Hessian 异常处理
bit1129
hessian
RPC异常处理概述
RPC异常处理指是,当客户端调用远端的服务,如果服务执行过程中发生异常,这个异常能否序列到客户端?
如果服务在执行过程中可能发生异常,那么在服务接口的声明中,就该声明该接口可能抛出的异常。
在Hessian中,服务器端发生异常,可以将异常信息从服务器端序列化到客户端,因为Exception本身是实现了Serializable的
- 【日志分析】日志分析工具
bit1129
日志分析
1. 网站日志实时分析工具 GoAccess
http://www.vpsee.com/2014/02/a-real-time-web-log-analyzer-goaccess/
2. 通过日志监控并收集 Java 应用程序性能数据(Perf4J)
http://www.ibm.com/developerworks/cn/java/j-lo-logforperf/
3.log.io
和
- nginx优化加强战斗力及遇到的坑解决
ronin47
nginx 优化
先说遇到个坑,第一个是负载问题,这个问题与架构有关,由于我设计架构多了两层,结果导致会话负载只转向一个。解决这样的问题思路有两个:一是改变负载策略,二是更改架构设计。
由于采用动静分离部署,而nginx又设计了静态,结果客户端去读nginx静态,访问量上来,页面加载很慢。解决:二者留其一。最好是保留apache服务器。
来以下优化:
- java-50-输入两棵二叉树A和B,判断树B是不是A的子结构
bylijinnan
java
思路来自:
http://zhedahht.blog.163.com/blog/static/25411174201011445550396/
import ljn.help.*;
public class HasSubtree {
/**Q50.
* 输入两棵二叉树A和B,判断树B是不是A的子结构。
例如,下图中的两棵树A和B,由于A中有一部分子树的结构和B是一
- mongoDB 备份与恢复
开窍的石头
mongDB备份与恢复
Mongodb导出与导入
1: 导入/导出可以操作的是本地的mongodb服务器,也可以是远程的.
所以,都有如下通用选项:
-h host 主机
--port port 端口
-u username 用户名
-p passwd 密码
2: mongoexport 导出json格式的文件
- [网络与通讯]椭圆轨道计算的一些问题
comsci
网络
如果按照中国古代农历的历法,现在应该是某个季节的开始,但是由于农历历法是3000年前的天文观测数据,如果按照现在的天文学记录来进行修正的话,这个季节已经过去一段时间了。。。。。
也就是说,还要再等3000年。才有机会了,太阳系的行星的椭圆轨道受到外来天体的干扰,轨道次序发生了变
- 软件专利如何申请
cuiyadll
软件专利申请
软件技术可以申请软件著作权以保护软件源代码,也可以申请发明专利以保护软件流程中的步骤执行方式。专利保护的是软件解决问题的思想,而软件著作权保护的是软件代码(即软件思想的表达形式)。例如,离线传送文件,那发明专利保护是如何实现离线传送文件。基于相同的软件思想,但实现离线传送的程序代码有千千万万种,每种代码都可以享有各自的软件著作权。申请一个软件发明专利的代理费大概需要5000-8000申请发明专利可
- Android学习笔记
darrenzhu
android
1.启动一个AVD
2.命令行运行adb shell可连接到AVD,这也就是命令行客户端
3.如何启动一个程序
am start -n package name/.activityName
am start -n com.example.helloworld/.MainActivity
启动Android设置工具的命令如下所示:
# am start -
- apache虚拟机配置,本地多域名访问本地网站
dcj3sjt126com
apache
现在假定你有两个目录,一个存在于 /htdocs/a,另一个存在于 /htdocs/b 。
现在你想要在本地测试的时候访问 www.freeman.com 对应的目录是 /xampp/htdocs/freeman ,访问 www.duchengjiu.com 对应的目录是 /htdocs/duchengjiu。
1、首先修改C盘WINDOWS\system32\drivers\etc目录下的
- yii2 restful web服务[速率限制]
dcj3sjt126com
PHPyii2
速率限制
为防止滥用,你应该考虑增加速率限制到您的API。 例如,您可以限制每个用户的API的使用是在10分钟内最多100次的API调用。 如果一个用户同一个时间段内太多的请求被接收, 将返回响应状态代码 429 (这意味着过多的请求)。
要启用速率限制, [[yii\web\User::identityClass|user identity class]] 应该实现 [[yii\filter
- Hadoop2.5.2安装——单机模式
eksliang
hadoophadoop单机部署
转载请出自出处:http://eksliang.iteye.com/blog/2185414 一、概述
Hadoop有三种模式 单机模式、伪分布模式和完全分布模式,这里先简单介绍单机模式 ,默认情况下,Hadoop被配置成一个非分布式模式,独立运行JAVA进程,适合开始做调试工作。
二、下载地址
Hadoop 网址http:
- LoadMoreListView+SwipeRefreshLayout(分页下拉)基本结构
gundumw100
android
一切为了快速迭代
import java.util.ArrayList;
import org.json.JSONObject;
import android.animation.ObjectAnimator;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayo
- 三道简单的前端HTML/CSS题目
ini
htmlWeb前端css题目
使用CSS为多个网页进行相同风格的布局和外观设置时,为了方便对这些网页进行修改,最好使用( )。http://hovertree.com/shortanswer/bjae/7bd72acca3206862.htm
在HTML中加入<table style=”color:red; font-size:10pt”>,此为( )。http://hovertree.com/s
- overrided方法编译错误
kane_xie
override
问题描述:
在实现类中的某一或某几个Override方法发生编译错误如下:
Name clash: The method put(String) of type XXXServiceImpl has the same erasure as put(String) of type XXXService but does not override it
当去掉@Over
- Java中使用代理IP获取网址内容(防IP被封,做数据爬虫)
mcj8089
免费代理IP代理IP数据爬虫JAVA设置代理IP爬虫封IP
推荐两个代理IP网站:
1. 全网代理IP:http://proxy.goubanjia.com/
2. 敲代码免费IP:http://ip.qiaodm.com/
Java语言有两种方式使用代理IP访问网址并获取内容,
方式一,设置System系统属性
// 设置代理IP
System.getProper
- Nodejs Express 报错之 listen EADDRINUSE
qiaolevip
每天进步一点点学习永无止境nodejs纵观千象
当你启动 nodejs服务报错:
>node app
Express server listening on port 80
events.js:85
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at exports._errnoException (
- C++中三种new的用法
_荆棘鸟_
C++new
转载自:http://news.ccidnet.com/art/32855/20100713/2114025_1.html
作者: mt
其一是new operator,也叫new表达式;其二是operator new,也叫new操作符。这两个英文名称起的也太绝了,很容易搞混,那就记中文名称吧。new表达式比较常见,也最常用,例如:
string* ps = new string("
- Ruby深入研究笔记1
wudixiaotie
Ruby
module是可以定义private方法的
module MTest
def aaa
puts "aaa"
private_method
end
private
def private_method
puts "this is private_method"
end
end