private _attackIndex:number如何获取
时间: 2024-02-06 16:09:49 浏览: 18
在类的内部可以直接访问该私有成员变量 `_attackIndex`。如果你想在类的外部获取它,可以通过定义一个公有的 getter 方法来实现:
```typescript
class MyClass {
private _attackIndex: number = 0;
public get attackIndex(): number {
return this._attackIndex;
}
}
const myInstance = new MyClass();
const attackIndex = myInstance.attackIndex;
```
这样,你就可以通过 `myInstance.attackIndex` 来获取 `_attackIndex` 的值了。注意,这里的 getter 方法名和私有成员变量名不需要完全相同,但一般会保持相似以方便理解。
相关问题
private _attackIndex:number在另一个文件内如何获取
如果 `_attackIndex` 是在另一个 TypeScript 文件中声明的私有变量,只有在同一个类中才能够访问它。如果你想在另一个文件中访问它,你可以将它声明为 `protected` 或 `public`,或者提供一个公共的 getter 方法来获取它的值。
假设 `_attackIndex` 是在 `ClassA.ts` 文件中声明的私有变量,你可以在 `ClassB.ts` 文件中通过下面的方式来获取它的值:
```typescript
import { ClassA } from './ClassA';
const instanceA = new ClassA();
const attackIndex = instanceA.getAttackIndex(); // 假设这里提供了一个公共的 getter 方法来获取 _attackIndex 的值
console.log(attackIndex);
```
或者你可以将 `_attackIndex` 声明为 `protected` 或 `public`,如下所示:
```typescript
// ClassA.ts
export class ClassA {
protected _attackIndex: number;
}
// ClassB.ts
import { ClassA } from './ClassA';
const instanceA = new ClassA();
const attackIndex = instanceA._attackIndex; // 可以直接访问 _attackIndex,因为它被声明为 protected
console.log(attackIndex);
```
给下列程序添加注释:void DWAPlannerROS::initialize( std::string name, tf2_ros::Buffer* tf, costmap_2d::Costmap2DROS* costmap_ros) { if (! isInitialized()) { ros::NodeHandle private_nh("~/" + name); g_plan_pub_ = private_nh.advertise<nav_msgs::Path>("global_plan", 1); l_plan_pub_ = private_nh.advertise<nav_msgs::Path>("local_plan", 1); tf_ = tf; costmap_ros_ = costmap_ros; costmap_ros_->getRobotPose(current_pose_); // make sure to update the costmap we'll use for this cycle costmap_2d::Costmap2D* costmap = costmap_ros_->getCostmap(); planner_util_.initialize(tf, costmap, costmap_ros_->getGlobalFrameID()); //create the actual planner that we'll use.. it'll configure itself from the parameter server dp_ = boost::shared_ptr<DWAPlanner>(new DWAPlanner(name, &planner_util_)); if( private_nh.getParam( "odom_topic", odom_topic_ )) { odom_helper_.setOdomTopic( odom_topic_ ); } initialized_ = true; // Warn about deprecated parameters -- remove this block in N-turtle nav_core::warnRenamedParameter(private_nh, "max_vel_trans", "max_trans_vel"); nav_core::warnRenamedParameter(private_nh, "min_vel_trans", "min_trans_vel"); nav_core::warnRenamedParameter(private_nh, "max_vel_theta", "max_rot_vel"); nav_core::warnRenamedParameter(private_nh, "min_vel_theta", "min_rot_vel"); nav_core::warnRenamedParameter(private_nh, "acc_lim_trans", "acc_limit_trans"); nav_core::warnRenamedParameter(private_nh, "theta_stopped_vel", "rot_stopped_vel"); dsrv_ = new dynamic_reconfigure::Server<DWAPlannerConfig>(private_nh); dynamic_reconfigure::Server<DWAPlannerConfig>::CallbackType cb = boost::bind(&DWAPlannerROS::reconfigureCB, this, _1, 2); dsrv->setCallback(cb); } else{ ROS_WARN("This planner has already been initialized, doing nothing."); } }
/**
* @brief 初始化DWAPlannerROS的函数
*
* @param name: 节点名字
* @param tf: tf2_ros::Buffer类型指针,用于获取tf信息
* @param costmap_ros: costmap_2d::Costmap2DROS类型指针,用于获取costmap信息
*/
void DWAPlannerROS::initialize(std::string name, tf2_ros::Buffer* tf, costmap_2d::Costmap2DROS* costmap_ros) {
// 判断是否已经初始化
if (!isInitialized()) {
// 创建私有命名空间
ros::NodeHandle private_nh("~/" + name);
// 创建两个Publisher,用于发布全局规划和局部规划
g_plan_pub_ = private_nh.advertise<nav_msgs::Path>("global_plan", 1);
l_plan_pub_ = private_nh.advertise<nav_msgs::Path>("local_plan", 1);
// 获取tf信息和costmap信息
tf_ = tf;
costmap_ros_ = costmap_ros;
costmap_ros_->getRobotPose(current_pose_);
// 更新costmap
costmap_2d::Costmap2D* costmap = costmap_ros_->getCostmap();
// 初始化planner_util_
planner_util_.initialize(tf, costmap, costmap_ros_->getGlobalFrameID());
// 创建DWAPlanner对象,从参数服务器上获取参数
dp_ = boost::shared_ptr<DWAPlanner>(new DWAPlanner(name, &planner_util_));
if (private_nh.getParam("odom_topic", odom_topic_)) {
odom_helper_.setOdomTopic(odom_topic_);
}
// 设置initialized_为true
initialized_ = true;
// 警告已经被弃用的参数
nav_core::warnRenamedParameter(private_nh, "max_vel_trans", "max_trans_vel");
nav_core::warnRenamedParameter(private_nh, "min_vel_trans", "min_trans_vel");
nav_core::warnRenamedParameter(private_nh, "max_vel_theta", "max_rot_vel");
nav_core::warnRenamedParameter(private_nh, "min_vel_theta", "min_rot_vel");
nav_core::warnRenamedParameter(private_nh, "acc_lim_trans", "acc_limit_trans");
nav_core::warnRenamedParameter(private_nh, "theta_stopped_vel", "rot_stopped_vel");
// 创建dynamic_reconfigure::Server对象,用于动态参数配置
dsrv_ = new dynamic_reconfigure::Server<DWAPlannerConfig>(private_nh);
dynamic_reconfigure::Server<DWAPlannerConfig>::CallbackType cb = boost::bind(&DWAPlannerROS::reconfigureCB, this, _1, 2);
dsrv_->setCallback(cb);
} else {
// 如果已经初始化,输出警告信息
ROS_WARN("This planner has already been initialized, doing nothing.");
}
}